怎么访问JAR包下的文件,路径?

北渔。 2014-04-24 04:37:44
如下图是我工程目录:


打包成JAR后看到的样子


从第一个图的左边红方框里可以看出,我这工程src下有个文件夹pstools,这文件夹下有好多可执行的小程序,这小程序是微软官网上下下来,是一些在telnet命令基本上写的小工具程序,执行这些工具时也直接在电脑下dos命令提示符下输入命令就可以了,可以看到图1右边代码写的执行命令格式,现在我想把文件夹pstools放到src下,好在打包时把pstools里的程序都添加到 JAR下,但是在eclipe下运行得好好的,一打包成 jar后就运行不了了,找 不到pstools下的程序了,应该是获取路径不对,各位大神,怎么写呢,才可以在打包后可以正常运行,这个路径怎么访问吧,谢谢
...全文
2119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lliiqiang 2014-05-06
  • 打赏
  • 举报
回复
jar包本身就是压缩包,可以用ZipInputStream
yuhouqingchen_2648 2014-05-05
  • 打赏
  • 举报
回复
引用 9 楼 huxiweng 的回复:
放在jar外吧。 具体原因看看我的博客:http://blog.csdn.net/withiter/article/details/11924095
谢谢,学习了。。。
xwqfudimo 2014-04-25
  • 打赏
  • 举报
回复
引用 6 楼 losebaby 的回复:
好像jar包内的文件读取得用stream,jvm不支持windows的exe程序直接运行。 读取文件流的例子 InputStream is=this.getClass().getResourceAsStream("文件相对路径"); 但这只是个流
说的有理,楼主想使用java命令运行.exe文件是行不通的
可乐罐 2014-04-25
  • 打赏
  • 举报
回复
好像jar包内的文件读取得用stream,jvm不支持windows的exe程序直接运行。 读取文件流的例子 InputStream is=this.getClass().getResourceAsStream("文件相对路径"); 但这只是个流
北渔。 2014-04-25
  • 打赏
  • 举报
回复
引用 4 楼 adyfang 的回复:
[quote=引用 3 楼 lu8000 的回复:] [quote=引用 1 楼 xwqfudimo 的回复:] 写相对路径,全部用PSTools\\开头
也不行哦,报错 java.io.IOException: Cannot run program "PSTools\psexec.exe": CreateProcess error=2, ????????? at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at com.yysot.test.RunTime.startProgrem(RunTime.java:49) at com.yysot.test.RunTime.main(RunTime.java:91) Caused by: java.io.IOException: CreateProcess error=2, ????????? at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) 大神,还有什么可以解决的办法么[/quote] 路径最前面加/[/quote] 也不行啊
teemai 2014-04-25
  • 打赏
  • 举报
回复
放在jar外吧。 具体原因看看我的博客:http://blog.csdn.net/withiter/article/details/11924095
北渔。 2014-04-25
  • 打赏
  • 举报
回复
引用 7 楼 xwqfudimo 的回复:
[quote=引用 6 楼 losebaby 的回复:] 好像jar包内的文件读取得用stream,jvm不支持windows的exe程序直接运行。 读取文件流的例子 InputStream is=this.getClass().getResourceAsStream("文件相对路径"); 但这只是个流
说的有理,楼主想使用java命令运行.exe文件是行不通的[/quote] 本想把.exe文件一起打包的以方便部署,但现在实在没找到办法,只能把pstool里的exe文件放在jar包外一起发布部署了,这样现在就可以解决了。
adyfang 2014-04-24
  • 打赏
  • 举报
回复
引用 3 楼 lu8000 的回复:
[quote=引用 1 楼 xwqfudimo 的回复:] 写相对路径,全部用PSTools\\开头
也不行哦,报错 java.io.IOException: Cannot run program "PSTools\psexec.exe": CreateProcess error=2, ????????? at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at com.yysot.test.RunTime.startProgrem(RunTime.java:49) at com.yysot.test.RunTime.main(RunTime.java:91) Caused by: java.io.IOException: CreateProcess error=2, ????????? at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) 大神,还有什么可以解决的办法么[/quote] 路径最前面加/
北渔。 2014-04-24
  • 打赏
  • 举报
回复
引用 1 楼 xwqfudimo 的回复:
写相对路径,全部用PSTools\\开头
也不行哦,报错 java.io.IOException: Cannot run program "PSTools\psexec.exe": CreateProcess error=2, ????????? at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at com.yysot.test.RunTime.startProgrem(RunTime.java:49) at com.yysot.test.RunTime.main(RunTime.java:91) Caused by: java.io.IOException: CreateProcess error=2, ????????? at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) 大神,还有什么可以解决的办法么
xwqfudimo 2014-04-24
  • 打赏
  • 举报
回复
写相对路径,全部用PSTools\\开头

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧