【发布时间】:2016-03-22 06:26:07
【问题描述】:
我的问题是,我无法在 Java 程序中打开 jar。我要打开的 .jar 中有一个 OpenCV 库。如果我双击.jar,那么它工作正常。如果我在 Mac OS X 终端中键入它也可以正常工作。
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JButton){
JButton button = (JButton) e.getSource();
if(button.getText().equals("Aktivieren")){
System.out.println("Yaay");
String str;
if(Main.os.contains("Mac")){
str = "java -jar "+System.getProperty("user.home") + "/Library/Application\\ Support/MW"+"/System/Core.jar";
System.out.println(str);
} else {
str = "java -jar "+Main.directory+"/MW/System/Core.jar";
}
System.out.println(str);
try {
Runtime.getRuntime().exec(str);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
所以 Sysout 的输出是: java -jar /Users/Tech/Library/Application\ Support/MW/System/Core.jar
当我将它手动粘贴到终端时,它工作得很好。
而且我没有收到任何错误消息。
对不起,我的英语不好,我是德国人。
感谢(或其他)技术
【问题讨论】:
-
如果您的项目需要它并使用像Eclipse这样的IDE,您需要添加
a jar to the buildpath。有很多关于这方面的资源,我不想发布一个新的以避免重复。 -
我认为这可能是因为类路径问题。
-
这会失败,因为您不能将
Runtime.exec(String)与任何包含空格或反斜杠的参数一起使用。请改用Runtime.exec(String[]),例如.exec(new String[] { "java", "-jar", System.getProperty("user.home") + "/Library/Application Support/MW/System/Core.jar") })(注意没有反斜杠) -
它的工作!谢谢大家