cmd运行java出现这样的异常怎么解决

在try那一行出的问题。这些代码在eclipse里面测试过没有任何问题
楼下我不能追问了,你说的我表示看不懂,如果能留个联系方式并帮我解决那可以继续,不然我就等别人更好的回复或者关闭了

把包成 jar 之后就不是这么回事了,在 Eclipse 中是未打包成 jar 就不会出现这个错误,当我们打包成 jar 之前和之后后,你的文件所在的位置的 URL 是:

前:

file:/C:/Users/project/bin/maps/temp/map0.txt

后:

jar:file:/C:/Users/WKH/Desktop/Game_mtw.jar!/maps/temp/map0.txt


而且在 jar 包中只能读取,不能修改它,所以你这个 copyFile 把文件复制到同一个目录下的临时文件中的不可能成功的。


你只能配置一个“工作目录”或叫“配置目录”然后把你的东西都解压到这个目录下,以后修改也在这个目录下完成。

追问

看不懂,前后的路径都可以啊。具体应该是怎么做的,我现在可以运行了,但是又出现这个错误,果然不能复制文件,那要复制文件怎么办

追答

你复制文件的目的是什么,为什么一定要放在原来那个文件的相同的目录下?我们需要使用一个单独的“工作目录”来放你修改后的文件,也就是先把你原来 jar 包中的文件复制到这个目录下然后再来修改。

追问

如果放在jar相同的目录下那路径应该怎么写

追答

从前面提到的“打包成 jar 之后的 URL” 中你能看出 jar 文件名后面跟着一个感叹号,你把这个字符串拿出来切分一下就知道原来的 jar 文件目录在哪儿。 URL 前面如果是 jar 就去掉 jar: 然后后面截止到感叹号前面一位

追问

那岂不是路径不能自定义了,就是必须提前指定是吧

追答

你完全可以在“程序运行时当前目录下的config.properties 文件中写上目录名嘛。

比如:
Properties config = new Properties();
config.load(new FileInputStream("config.properties"));

String rootDir = config.getProperty("root.dir");

这样以后你只需要确保你运行程序时是在 jar 所在的目录下,并且这个目录下的 config.properties 文件中的 root.dir 写上你期望的工作目录在哪儿。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-14
把需要的.txt文件和jar包放在一个目录下执行试试
第2个回答  2014-11-14
你明白相对路径和绝对路径的区别吗?追问

可否具体说说看,我这个怎么改

相似回答