2 回答
TA贡献1862条经验 获得超6个赞
如此处所述,您将使用:
System.getProperty("user.dir");
它会给你用户的工作目录。
输出是:
C:\Foo> java -jar bar\baz.jar Directory: C:\Foo
因为这对您不起作用,所以问题一定来自 Launch4J。
当您启动 Launch4j 时,Option Basic -> Change Dir 中有一个小点,将其删除,您会很高兴。
这里的参考是我的 Launch4J 配置:
<?xml version="1.0" encoding="UTF-8"?>
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>console</headerType>
<jar>C:\Foo\bar\baz.jar</jar>
<outfile>C:\Foo\bar\baz.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir></chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<stayAlive>false</stayAlive>
<restartOnCrash>false</restartOnCrash>
<manifest></manifest>
<icon></icon>
<jre>
<path></path>
<bundledJre64Bit>false</bundledJre64Bit>
<bundledJreAsFallback>false</bundledJreAsFallback>
<minVersion>1.6</minVersion>
<maxVersion></maxVersion>
<jdkPreference>preferJre</jdkPreference>
<runtimeBits>64/32</runtimeBits>
</jre>
</launch4jConfig>
另一种可能的解决方法是使用.bat如下文件:
java -jar bar\baz.jar
并将这个bat打包成一个exe文件。
TA贡献1810条经验 获得超5个赞
这应该工作:
import java.util.*;
import java.lang.*;
public class GetExePath
{
public static void main(String args[]) {
try{
String exePath = System.getProperty("user.dir");
System.out.print("exe path at ="+exePath .replace("\\", "/"));
}catch (Exception e){
System.out.println("Some Exception ="+e.getMessage());
}
}
}
输出 :
D:\vinay_hegde\javaexample>javac GetExePath.jav
D:\vinay_hegde\javaexample>java GetExePath
exe path at = D:\vinay_hegde\javaexample
添加回答
举报