从.jar文件启动文本文件(文件路径?)

时间:2015-11-05 12:17:50

标签: java eclipse jar executable-jar

我尝试使用Desktop.getDesktop()从.jar文件启动文本文件.open(file)

String fileName = "file.txt";

URL url = getClass().getResource(fileName);
File fileToRead = new File(url.toURI());
Desktop.getDesktop().open(fileToRead);

为简单起见,我省略了try-catch块。 它可以在从eclipse运行时打开我的文件。但是一旦导出到.jar文件,我在 文件fileToRead = new File(url.toURI());

中得到NullPointerException

2 个答案:

答案 0 :(得分:0)

当你在.jar文件中打包一个类时,它通常会使它嵌套更深一层。

因此,您可以尝试将第一行更改为:

String filename = "../file.txt";

答案 1 :(得分:0)

查看Class.getResource(String)的JavaDoc:

  

使用此算法从给定的资源名称构造绝对资源名称:

     

如果名称以' /'开头,则资源的绝对名称是' /'后面的名称部分。   否则,绝对名称具有以下形式:   modified_package_name/name   modified_package_name是此对象的包名称,其中' /'取代'。'。

     

参数:

     

name - 所需资源的名称

     

返回:   如果找不到具有此名称的资源,则为URL对象或 null

找不到您的资源,因此NullPointerException。按照JavaDoc所描述的方式指定JAR中的路径(以' /&#39开头的绝对路径;或相对于this的类,即您调用的对象getClass().getResource(fileName))和你应该得到它。