首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从终端(Runtime.getRuntime().exec)运行具有本机和.jar依赖关系的JAR文件

问从终端(Runtime.getRuntime().exec)运行具有本机和.jar依赖关系的JAR文件
EN

Stack Overflow用户
提问于 2015-05-18 15:37:43
回答 1查看 740关注 0票数 0

在具有本机和.jar依赖关系的终端上运行JAR文件时遇到了问题。好的,我的目标不是从终端运行它,而是使用Java的Runtime.getRuntime().exec函数作为一个单独的进程运行它,但是如果我不能从终端运行它,那么我也不能通过它运行它。我试图运行的JAR文件依赖于许多其他jar文件以及许多.so库。我试图将所有.jar依赖项和.so依赖项放在它们自己的文件夹中,然后用以下方式运行jar文件:

代码语言:javascript
复制
java -cp /home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/* -Djava.library.path=/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/lib/native/linux-64/* -jar /home/johnmichaelreed/NetBeansProjects/SendReceive/dist/SendReceive.jar

其中,"/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/“包含所有JAR文件,"/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/lib/native/linux-64/”包含所有.so文件,而要运行的主要JAR文件是"/home/johnmichaelreed/NetBeansProjects/SendReceive/dist/SendReceive.jar",,但是我一直得到这个错误:

代码语言:javascript
复制
Error: Could not find or load main class 
.home.johnmichaelreed.Desktop.Dropbox.Libjitsi_linux_64.some-compressed-jar-file.jar

其中一些压缩的jar文件是我的应用程序应该使用的.jar文件之一。

下面是我的Java依赖关系文件夹:

​

​

下面是我的本机库依赖项文件夹:

​

​

更新:

好吧,这就是解决办法:

java -Djava.library.path=/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/lib/native/linux-64 -cp '/home/johnmichaelreed/NetBeansProjects/SendReceive/dist/SendReceive.jar:/home/j‌​ohnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/*‘Main

尝试使用命令行args:

java -Djava.library.path=/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/lib/native/linux-64 -cp '/home/johnmichaelreed/NetBeansProjects/SendReceive/dist/SendReceive.jar:/home/j‌​ohnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/*‘Main "arg“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-18 15:47:04

您不能同时使用-jar和-cp。

您可以做的是将jar添加到类路径中,然后指定要运行的主类。您还可以在jar的清单中指定jar依赖项。

更多细节请看here。

假设您的主类位于名为Main和包foo.bar中,那么可能的调用可能如下所示:

代码语言:javascript
复制
java -cp "/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/*;/home/johnmichaelreed/NetBeansProjects/SendReceive/dist/SendReceive.jar" -Djava.library.path="/home/johnmichaelreed/Desktop/Dropbox/Libjitsi_linux_64/lib/native/linux-64/*" foo.bar.Main
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30307412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档