题
有什么办法,由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
运行属性记录一>太多,所以幸运的是这不只是一个内部实现细节。
不隶属于 StackOverflow