0

我想在 .jar 应用程序中打开一个文件,并且我想使用 java 来执行此操作。解释一下,例如我有文件 SF_Antivalent.xml,我想用 uppaal.jar 打开它。我如何使用 Java 做到这一点。我已经编写了以下代码,但它不起作用。

public class test7 {
public static void main(String[] args){


    Runtime rt=Runtime.getRuntime();
    String file="C:\\Users\\V\\Documents\\diplwmatiki\\SFBs\\SF_Antivalent.xml";
    Process p=rt("C:\\Windows\\System32\\java.exe", "-jar", "C:\\Users\\"
            + "V\\Documents\\uppaal-4.0.13-aca\\uppaal-4.0.13\\uppaal.jar" + file);
}

}

我收到此错误:类型测试的方法 rt(String, String, String) 未定义。有什么事要做吗?

4

3 回答 3

0

您收到错误的原因是因为 rt 是运行时对象,而不是方法。要调用 rt 的方法,请执行以下操作:

rt.someMethodName();
于 2013-10-10T22:11:42.950 回答
0

使用上面的代码,您无法获取 XML 文件,您正在尝试执行某些操作,而不是在 JAR 存档中打开文件

查看getResourceAsStream,这将使您可以从 JAR 加载任何文件

于 2013-10-10T22:14:03.137 回答
0

你的问题有点令人困惑,但是,我相信你想运行一些应用程序并将 XML 文件作为参数传递给它......

问题是,您将rt其视为函数/方法,而不是对象。 Runtime具有exec用于执行外部命令的方法,例如...

Runtime rt=Runtime.getRuntime();
String file="C:\\Users\\V\\Documents\\diplwmatiki\\SFBs\\SF_Antivalent.xml";
Process p=rt.exec(new String[]{
    "C:\\Windows\\System32\\java.exe", 
    "-jar", 
    "C:\\Users\\V\\Documents\\uppaal-4.0.13-aca\\uppaal-4.0.13\\uppaal.jar", 
    file});

此外,您要发送到此外部进程的每个命令或参数必须是您传递给此方法的数组中的自己的元素

这意味着"V\\Documents\\uppaal-4.0.13-aca\\uppaal-4.0.13\\uppaal.jar" + file您实际上不会产生您认为的效果。

我也建议您使用ProcessBuilderover Runtime#exec,但那是我。

于 2013-10-11T00:11:17.283 回答