我有一个巨大的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个文件或者有我的要求的解决方案吗?
答案 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中提供位置来做到这一点。