如何从可执行的jar文件中打开一个位置

时间:2017-03-16 12:04:32

标签: java jar location runtime-error executable-jar

我编写了一个java程序,使用

获取当前目录
class Icons {
  Icon exampleIcon;
}

class ExampleAction {
   ExampleAction( ... , Icons icons, ...) { ... }

   Icon getIcon() {
     return icons.exampleIcon;
   }
}

我正在尝试使用

打开相同的位置
URL location = FileToString.class.getProtectionDomain().getCodeSource().getLocation();

工作正常,当我在eclipse中运行时,位置会在新窗口中打开。

但是,当我将同一个项目导出到可执行jar并运行时,它没有。

它显示错误,如Desktop.getDesktop().open(new File(location.getFile()));

以下是我运行could not find the main class,program will exit

时登录的cmd
java -verbose -jar <jarpath>

(注意:清单文件中存在主类,如果我删除Desktop.getDesktop(),则不会发生此错误.open(new File(location.getFile()));来自代码并导出可执行文件罐)

对于stackOverflow中非常类似的问题,很少有解决方案是在InputStream中读取。 虽然解决方案并不清楚,但我尝试过但是没有用。

请帮忙。提前谢谢。

0 个答案:

没有答案