如何通过java在.jar中打开文件

时间:2013-10-10 22:05:30

标签: java file jar

我想在.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)。 有什么可做的吗?

3 个答案:

答案 0 :(得分:0)

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

rt.someMethodName();

答案 1 :(得分:0)

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

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

答案 2 :(得分: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实际上不会产生您认为会产生影响的效果。

我还建议您使用ProcessBuilder而不是Runtime#exec,但那就是我。