質問

どのような方法は、GCJでコンパイルされたJavaプログラムの中から、あり、プログラムを起動するために実行可能なユーザーRANの名前を見つけるために?

(メイン内側から)

はC、ARGV [0]名であるが、Javaでは、主に与えられたargs配列は、メインクラスにのみ引数を含みます。通常のjavaコマンドラインで実行する場合、実行はいつものJava(またはのjava.exe)になるので、それはいくつかの理にかなっています。

GCJでコンパイルされたJavaプログラムを実行している場合は、

、しかし、実行ファイルの名前は、ユーザーのRANは、有用な情報かもしれません。理想的には、私は、プラットフォームの特定に頼らずにその名前を見つけるしたいと思いますが不可能であること(と同等のWindowsのためになるものは何でも)読み取り/ procのように近づき、おそらくます。

役に立ちましたか?

解決

Googleソースコード検索に多く検索した後、私はプログラム名がgnu.gcj.prognameプロパティに隠されていることを発見しました。サンプルプログラム:

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

編集を追加するには:gnu.gcj.progname libgcjランタイムプロパティに記載されています。あまりにも、そう幸運なこと、これは単に内部実装の詳細ではありません。

scroll top