2 回答

TA貢獻1862條經(jīng)驗 獲得超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條經(jīng)驗 獲得超5個贊
這應(yīng)該工作:
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
添加回答
舉報