Frage

Gibt es eine Möglichkeit, aus einem Java-Programm von gcj zusammengestellt, um den Namen der ausführbaren Datei des Benutzer läuft das Programm starten herauszufinden?

In C, argv [0] (von innen Haupt) ist der Name, aber in Java, der args Array Haupt gegeben enthält nur die Argumente die Hauptklasse. Wenn es mit einer normalen Java-Befehlszeile ausgeführt wird, das macht einen Sinn, weil die ausführbare Datei immer Java (oder java.exe) sein würde.

Wenn ein Java-Programm ausgeführt wird, die durch gcj kompiliert wurde, jedoch der Name der ausführbaren Datei, die der Benutzer RAN könnte nützliche Informationen sein. Im Idealfall würde ich ohne diesen Namen finden wie auf plattformspezifische greifen Ansätze wie das Lesen / proc (und was auch immer das Äquivalent für Windows wäre), aber vielleicht ist das nicht möglich.

War es hilfreich?

Lösung

Nach langer Suche auf Google Code Search, habe ich entdeckt, dass der Programmname in der gnu.gcj.progname Eigenschaft gebunkert wird. Beispielprogramm:

public class ProgName {
    public static void main(String... args) {
        System.out.println(System.getProperty("gnu.gcj.progname"));
    }
}

Edited hinzufügen: gnu.gcj.progname ist dokumentiert in libgcj Runtime-Eigenschaften zu, so zum Glück dies nicht nur eine interne Implementierung Detail.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top