[*] 如何获取当前运行的目录和文件

jasonchain 2009-10-22 10:30:22
一个java程序打包成jar之后运行,如何获得这个jar的完整文件名?


Class thisClass = this.getClass();
String suffix = "/" + thisClass.getName().replace(".", "/") + ".class";
URL url = thisClass.getResource(suffix);
String fullName = url.toString();

用上面的代码可以获得jar文件名,但是文件名是经过处理的:jar:file:/E:/Java/Test/z/t.jar!/ztest/Test.class
并且如果路径中有空格,也会出现稀奇古怪的字符。
...全文
289 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasonchain 2009-10-25
  • 打赏
  • 举报
回复
jasonchain 2009-10-23
  • 打赏
  • 举报
回复
但是这个程序最后打成jar包,可能随便放了,空格可能出现啊;
除了空格问题,另外补充一点,输出来的是jar:file:/E:/Java/Test/z/t%20.jar!/ztest/Test.class
zoutuo 2009-10-22
  • 打赏
  • 举报
回复
写程序注意的几点:
目录不使用中文,尽量避免空格
做服务器集群和负载平衡时这点闲的尤为重要
amdgaming 2009-10-22
  • 打赏
  • 举报
回复
那你文件名不要用空格啊 自己的项目文件完全可以避免这种情况
jasonchain 2009-10-22
  • 打赏
  • 举报
回复
我就是用的这个方法,但输出来的是jar:file:/E:/Java/Test/z/t.jar!/test/Test.class
而且有空格的话是这样的:jar:file:/E:/Java/Test/z/t%20.jar!/ztest/Test.cl

amdgaming 2009-10-22
  • 打赏
  • 举报
回复
URL url = Element.class.getResource("/musics/cmusic.mid");
试试这个方法
Elment是你当前自己的类 后面参数是 图片名字或者文件名字你看看api
jasonchain 2009-10-22
  • 打赏
  • 举报
回复
System.getProperty("user.dir")
只能获得当前的运行目录,不是要运行的程序所在的目录。
如果在某个目录运行其它目录的java程序就不行了
amdgaming 2009-10-22
  • 打赏
  • 举报
回复
System.getProperty("user.dir");试试。

62,620

社区成员

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

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