从JAR内部运行* .exe文件

时间:2012-09-21 13:42:11

标签: java maven jar exe maven-shade-plugin

我有一个巨大的JAR文件,我使用Maven Shade插件创建。

我使用java -jar foo.jar运行此操作,并打开我的UI。现在我想执行*.exe文件,该文件也在该JAR文件中,我该怎么做?

我尝试将exe放到我的类路径并从那里运行它,但在尝试之后我发现classpath实际上就是我的JAR所在的位置。

有什么建议吗?

在这里找到这个东西,但这真的是最好的解决方案吗?好像很多工作,我想我在这里有不同的情况,因为我可以自己定义exe的位置,JAR是由我创建的。

run exe which is packaged inside jar

为什么我需要这个?

我想给用户一个可以运行的文件可执行文件,但我的程序正在使用* .exe。我应该把exe放在我的罐子旁边,并且会有2个文件或者有我的要求的解决方案吗?

2 个答案:

答案 0 :(得分:4)

将文件复制到临时位置并运行它是可行的方法。您链接到的答案做了更多必要的工作,因为您可以将您的exe文件作为InputStream并将其复制到具有Apache Commons IO FileUtils.copy(in, out)

等实用程序的文件中

例如,请参阅How do I copy a text file from a jar into a file outside of the jar?

答案 1 :(得分:2)

这不是关于位置,而是关于你需要告诉你的操作系统运行exe的事实,不幸的是,你不能通过在jar中提供位置来做到这一点。