一个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
并且如果路径中有空格,也会出现稀奇古怪的字符。
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
并且如果路径中有空格,也会出现稀奇古怪的字符。
只能获得当前的运行目录,不是要运行的程序所在的目录。
如果在某个目录运行其它目录的java程序就不行了
试试这个方法
Elment是你当前自己的类 后面参数是 图片名字或者文件名字你看看api
而且有空格的话是这样的:jar:file:/E:/Java/Test/z/t%20.jar!/ztest/Test.cl
除了空格问题,另外补充一点,输出来的是jar:file:/E:/Java/Test/z/t%20.jar!/ztest/Test.class