java运行*。来自JAR内部的exe文件
我有一个巨大的JAR文件,是我用Maven Shade
插件创建的
我用java -jar foo.jar
运行它,我的UI打开。现在我想执行*.exe
文件,它也在那个JAR文件中,我如何才能做到这一点
我尝试将exe放入我的类路径并从那里运行它,但在尝试之后,我发现类路径实际上就是我的JAR所在的位置
有什么建议吗强>
在这里找到了这个东西,但这真的是最好的解决方案吗?看起来有很多工作,我想我这里有不同的情况,因为我可以自己定义exe的位置,JAR是我创建的
run exe which is packaged inside jar
为什么我需要这个
我想给用户一个可执行文件,他可以运行,但我的程序使用的是*。exe。我应该把exe放在我的jar旁边,然后会有2个文件,还是有适合我需求的解决方案强>
# 1 楼答案
这与位置无关,而是你需要告诉你的操作系统运行exe,不幸的是,你不能通过在jar中提供一个位置来做到这一点
# 2 楼答案
将文件复制到一个临时位置并运行它是一种方法。您链接到的答案需要做更多必要的工作,因为您可以将exe文件作为输入流,并使用Apache Commons IO
FileUtils.copy(in, out)
之类的实用工具将其复制到文件中例如,参见How do I copy a text file from a jar into a file outside of the jar?