gpt4 book ai didi

java - 执行java可执行文件(.exe)时如何获取CMD的目录

转载 作者:行者123 更新时间:2023-12-02 01:22:16 24 4
gpt4 key购买 nike

如何从已导出并转换为 .exe 文件的 java 文件中找到 CMD 当前所在的当前目录。

我不是在寻找当前工作目录,因为这只能获取 .exe 文件的位置。

System.getProperty("user.dir")不是我要找的。与 new File(".") 相同

如果cmd是C:Users/User/Desktop然后我调用file.exe ,我想知道路径C:Users/User/Desktop ,不是 file.exe 的目录.

我通过以下方式将 Main.java 文件转换为 .exe:(使用 Eclipse) 导出为可运行 Jar 文件 as file.jar

Launch4j - 输出文件 = file.exe - Jar 运行时路径 = Jars/file.jar - 不包装 jar,仅启动

最佳答案

如上所述here您将使用:

System.getProperty("user.dir");

它将为您提供用户的工作目录。

输出是:

C:\Foo> java -jar bar\baz.jar
Directory: C:\Foo

因为这对您不起作用,所以问题一定来自 Launch4J。

当您启动 Launch4j 时,Option Basic -> Change Dir 处有一个小点,将其删除,您就会满意了。

Change Dir Option

这里是我的 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文件。

关于java - 执行java可执行文件(.exe)时如何获取CMD的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com