Java获取当前文件名EXE

时间:2014-07-16 00:52:06

标签: java file

这是我的第一个Stackoverflow问题。

我搜索了Google以获取Java中的当前文件名。如果文件是JAR文件,大多数消息来源告诉用户如何找到当前文件名,但是我要求当前文件是否是EXE文件。

我在Get name of running Jar or Exe中看到了一个EXE答案,但我认为它不起作用。

我使用JSmooth EXE包装器(launch4j以某种方式对我不起作用)和Java 8.我的问题是否有直接的解决方案?此外,很好地解释它是如何工作的,或者提供关于它的Java纪录片的链接。

编辑:为了澄清,假设我创建了一个Java程序并使用了JAR包装器,并将生成的EXE命名为“test.exe”。我希望Java程序能够给我当前的“test.exe”目录,包括文件名本身(test.exe)。

另一个编辑:为了澄清更多信息,请转到桌面,创建一个文本文件,并在其中添加一些文本。保存它,并将文本文件更改为EXE文件。然后,尝试打开它。 Windows将出错。请注意消息对话框的标题是打开文件的文件路径。这就是我想要的输出类型。

感谢。

2 个答案:

答案 0 :(得分:2)

根据JSmooth文档,

  

JSmooth还为您的应用程序提供了一些特殊变量。

Form                          Meaning
${EXECUTABLEPATH}             Replaced by the path to the executable binary. For 
                              instance, if the executable binary launched is located
                              at c:/program files/jsmooth/test.exe, this variable 
                              is replaced with c:/program files/jsmooth

${EXECUTABLENAME}             Replaced by the name of the executable binary. For 
                              instance, if the executable binary launched is located
                              at c:/program files/jsmooth/test.exe, this variable is
                              replaced with test.exe 

您可以在“环境设置”(最后一个面板)下的JSmooth中设置它们,这样您就可以映射变量名称。所以,

MY_EXECUTABLEPATH=${EXECUTABLEPATH}
MY_EXECUTABLENAME=${EXECUTABLENAME}

在您的应用程序中,您可以使用

获取
String execPath = System.getProperty("MY_EXECUTABLEPATH");
String execName = System.getProperty("MY_EXECUTABLENAME");

答案 1 :(得分:0)

public class JavaApplication1 {
  public static void main(String[] args) {
       System.out.println("Working Directory = " +
              System.getProperty("user.dir"));
  }
}

这将打印应用程序初始化的完整绝对路径。它仅用于获取DIRECTORY。

如果您使用的是.exe,为什么不创建安装程序?您可以使用Inno Setup,这样您就可以指定存储.exe的位置,并通过自定义目录从应用程序中获取