java将bat文件放入jar文件中
我有一个java类,它使用bat文件执行命令。但是我在EclipseIDE中开发了它。它在那里工作得很好。但当我将其导出到jar文件中时,它找不到包含的bat文件。(给我一个例外)
eclipse中的文件结构如下 :
Project1
---->src
------>com.myproj
-------->BatFileRead.java
----md.bat
----ul.bat
bat和ul医学博士。bat与src目录的级别相同。震动后,src文件夹消失
有人能帮我吗。 谢谢
# 1 楼答案
尝试将
file.jar
复制到file.zip
,然后打开file.zip
(例如双击,或使用7-Zip)。你能在里面找到你的.bat
文件吗?如果.bat
文件不存在,则必须将.bat
文件添加到Eclipse项目中,并在Eclipse中重建。如果.bat
文件在那里,但您仍然从.java
应用程序中获得一个IOException
打开它,那么请发布触发IOException
的代码片段,并请给出file.zip
的完整列表(通过将file.zip
提取到C:\testdir
,并在命令行中运行dir /s C:\testdir
来获取列表)请注意,Jon Skeet是对的,虽然可以使用{}和{}(参见{a1}或在{a2}中找到它们)打开{}文件中的任何文件作为{}文件,但为了在内部执行{},必须首先提取{}文件
# 2 楼答案
这可能非常危险。处理球棒时一定要戴手套。它们咬人而且很痛。也试着找一个开口足够大的罐子,尽管蝙蝠几乎可以穿过任何一个洞
祝你好运,不要在家里尝试。这是由专业人士完成的
# 3 楼答案
为了执行该命令,您必须在之后提取bat文件。不能运行jar文件中的可执行文件。基本上,您需要将jar文件中的批处理文件条目作为输入流打开,并将数据复制到磁盘上的
FileOutputStream
。在它成为文件系统上正确的独立文件之前,您将无法执行它如果您已经在尝试提取它,那么很可能您使用的
getResource
或getResourceAsStream
有点不正确。这很容易做到,因为这取决于您是调用ClassLoader.getResourceAsStream
还是Class.getResourceAsStream
。第一个只使用绝对路径(隐式),第二个可以使用绝对路径或相对路径。例如,在您的情况下,您希望:或
你有没有检查过bat文件最终肯定会出现在jar文件中?只需将内容与
看看里面有什么