从runnable jar执行批处理文件会发现path not found错误

时间:2012-06-06 11:29:15

标签: java jar batch-file executable-jar

我正在从java程序执行批处理文件。 当我从eclipse执行时它工作正常,但当我使它成为一个可运行的jar时,它无法找到批处理文件的路径

我将批处理文件保存为源目录中的资源。 当我使用Class.getResource(“/ resource / mybat.bat”)打印资源的路径时,它正确地给出了路径

  • resources / mybat.bat (jar创建选项:将所需的包打包到生成的jar中)
  • file:/ C:/Users/aasha.medhi/Desktop/myjar.jar!/resources/mybat.bat (jar创建选项:将所需的库提取到生成jar)

如果我解压缩jar,则存在resources文件夹。

然而,当我尝试运行jar时,它为批处理文件提供了“系统无法找到指定路径的错误”

我已经浏览了大部分链接并尝试了不同的选项,但没有任何运气。 我只需要一种方法来正确创建可运行的jar。请帮助..

2 个答案:

答案 0 :(得分:1)

虽然Java可以读取JAR并将它们视为普通文件系统,但大多数其他应用程序却不能。在这种情况下,cmd不能。您必须将批次提取到临时位置并从那里运行。

答案 1 :(得分:0)

如果我理解正确你在jar中有这个批处理文件,它应该在类路径上可用(检查META-INF清单文件)。

在您拥有可用资源后,如果是批处理文件,您可以通过ClassLoader访问它。在你的类中应该触发批处理文件的内容如下:

this.getClass().getClassLoader().getResource(name)