将bat文件放在jar文件中

1 java eclipse batch-file

我有一个java类,它使用bat文件来执行命令.但是我在Eclipse IDE中开发了它.它在那里工作正常.但是当我将它导出到jar文件中时,它无法找到包含的bat文件.(给我一个IOException)

eclipse中的文件结构如下:

Project1
---->src
------>com.myproj
-------->BatFileRead.java
----md.bat
----ul.bat
Run Code Online (Sandbox Code Playgroud)

md.bat和ul.bat与src目录的级别相同.震撼之后,src文件夹消失了.

有人可以帮我这个吗?谢谢

Jon*_*eet 5

为了执行命令,您必须在之后提取bat文件.您无法运行jar文件中的可执行文件.基本上,您需要将jar文件中的批处理文件条目作为输入流打开,并将数据复制到FileOutputStream磁盘上.在文件系统上的适当独立文件之前,您将无法执行它.

如果您已经尝试提取它,那么您可能正在使用getResourcegetResourceAsStream稍微错误.这很容易做到,因为这取决于你是在打电话ClassLoader.getResourceAsStream还是打电话Class.getResourceAsStream.第一个只使用绝对路径(隐式),第二个可以使用绝对路径或相对路径.例如,在您的情况下,您需要:

BatFileRead.class.getResourceAsStream("/md.bat")
Run Code Online (Sandbox Code Playgroud)

要么

BatFileRead.class.getClassLoader().getResourceAsStream("md.bat")
Run Code Online (Sandbox Code Playgroud)

你有没有检查过bat文件肯定会在jar文件中结束?只需列出内容即可

jar tvf file.jar
Run Code Online (Sandbox Code Playgroud)

看看那里有什么.