【发布时间】:2019-04-15 17:48:16
【问题描述】:
我正在使用 Gradle 中的 Launch4j 插件创建一个 exe 文件。我的目的是在执行放置在另一个目录中的 exe 文件时获取我所在的目录。比如exe文件放在“C:\Utilities”,我的当前目录是“C:\temp”。当我执行“C:\Utilities\my.exe”时,我想在我的 main 方法中获取“C:\temp”。
我尝试将 %CD% 的结果作为系统属性发送 -
createExe {
mainClassName = 'com.eldho.mp3tools.Mp3ToolsMain'
jvmOptions = ['-Dworking.dir="%CD%"']
}
但是,它在我的方法中变成了空白。
我也在方法里面试过这个——
Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
logger.info("Current relative path is: " + s);
这给出了 exe 文件所在的目录 (C:\Utilities)。
感谢任何帮助。
【问题讨论】:
-
您是否试图获取运行 exe 的路径?如果是这样,为什么不尝试更以 Java 为中心的方法呢?这 - stackoverflow.com/a/227640 - 允许您获取类的位置。从你的exe运行时它输出什么?值得一试。
-
我正在寻找我在运行不同目录中的 exe 时所在的目录。
标签: java gradle command exe launch4j