有什么办法,由GCJ编译Java程序中,找出可执行文件的用户已运行的名称来启动程序?

在C,的argv [0](从内部主)是名字,但在Java,给予主args数组只包含参数的主类。当与正常java命令行运行,这使得一些合理的,因为可执行将始终是Java(或java.exe的)。

当运行已由GCJ编译的Java程序,然而,可执行文件的名称,用户然可能是有用的信息。理想情况下,我想找到这个名字而不诉诸平台的具体方法,如阅读的/ proc(和任何等同将适用于Windows),但也许这是不可能的。

有帮助吗?

解决方案

在谷歌代码搜索一番搜索后,我发现该程序名称在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