在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 写上你期望的工作目录在哪儿。