小弟我jar包做好了,写个批处理可以运行程序的,但为什么小弟我在地址中打开该批处理文件却不能运行程序呢

我jar包做好了,写个批处理可以运行程序的,但为什么我在地址中打开该批处理文件却不能运行程序呢?

百度了很久,没发现有类似问题的。也可能是小问题吧,我一时转不过弯来。可能跟java技术无关吧,其它的文件若需要同目录下的一些配置等文件,用地址栏也可能打不开的,单独在哪里双击却可以打开。我只是觉得好奇,为什么会打不开呢?哈,没解决睡不着觉啊。

当看这个问题可能有点抽象,以下我详细说明一下吧。

比如目录是:D:\java java目录中有两个文件,分别是:client.jar和run.bat, run.bat中的内容是:start javaw -jar client.jar,

我双击run.bat,程序是可以运行的,说明jar包是没问题的。

于是我随便打开一个文件夹(就双击打开我的电脑吧),在地址栏中,我输入D:\java\run.bat,为何不能运行程序呢?提示为打不打client.jar文件,(Unable to access jarfile client.jar),如下图所示:



大家随便弄一个可用的jar 包,写个批处理,试试看就知道了。把jar包弄成exe文件,也存在这个问题,因此我做了安装包,桌面或程序中的快捷方式老是打不开exe文件,很郁闷啊。很奇怪,是不是大家java程序都不做安装包呀,直接用绿色版的,怎么都没人发现这个问题呢?
有什么办法能解决这个问题呢?很好奇啊,各位大虾们一定要帮忙解决啊,多谢了。



------解决方案--------------------

------解决方案--------------------
图片没看到啊,你图片用的是本地的,我们看不到啊。

你到 hi.csdn.net/my.html 左边 相传 中点 上传,把图片传上去,再链接过来就行了,否则我们看不到。
------解决方案--------------------
没看懂
------解决方案--------------------
试试这个
start javaw -jar D:\java\client.jar

或者这个
java -classpath D:\java\client.jar MainClass
------解决方案--------------------
关注下 。 批处理的东东
------解决方案--------------------
帮顶,等待高手解答。
我也想做个安装包,一直找不到有效的答案。
------解决方案--------------------
把start javaw -jar client.jar修改为绝对路径

start javaw -jar d:\java\client.jar

试试
------解决方案--------------------
探讨
试试这个
start javaw -jar D:\java\client.jar

或者这个
java -classpath D:\java\client.jar MainClass

------解决方案--------------------
简单改一下批处理文件就能发现问题所在:

BatchFile code
@start javaw -jar SwingSet2.jar
@echo 当前目录:%CD%
@pause

------解决方案--------------------
学习了
------解决方案--------------------
是因为classpath不同而导致的。
当楼住在D:\java中执行run.bat时,此时当前目录是D:\java,此时classpath包含D:\java,也就是说java命令首先会在D:\java中寻找client.jar,
但在其他文件夹下运行D:\java\run.bat就不一样了,此时当前目录已经变了,在当前目录已经找不到client.jar了,所以会出错。
------解决方案--------------------
关注下