开发者

How to get a path to a resource/file out of a Java JAR file

开发者 https://www.devze.com 2023-01-20 12:41 出处:网络
I\'m trying to get the path to a file that it is located out of the java jar and I don\'t want to use an absolute path. An exampel: lets say that the jar is located in ~/lib/myjar.jar and the file is

I'm trying to get the path to a file that it is located out of the java jar and I don't want to use an absolute path. An exampel: lets say that the jar is located in ~/lib/myjar.jar and the file is located in the same folder. What I've trying is something like this, but it fails:

File myfile = new File(this.getClass().getResource("../../../").toURI());

Note: my package is com.contro.gui, that's why I have "../../../", in order to acces to the "root"

I'm not sure how I can access to the file. Any suggestion?? And what about if the file that I want to access is in other folder li开发者_如何学Pythonke ~/res/ ???


If the file is in the same directory as the jar, I think this will work (feels fairly hacky, but...):

URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
File myfile = new File(url.toURI());
File dir = myfile.getParentFile(); // strip off .jar file

(Haven't tested this, but it seems feasible. Will only work with file-based jars of course).

If the file is in some random location, I think you will need to either pass in parameters or check "known" locations like user.home. (Or, you could always put the file in the jar a use getResource().)


No just do

     File FileName = new File(".");
     String Directory = FileName.getCanonicalPath();

that will get you the parent directory of your class in a file or jar just remember to set the directory if it's in a jar like this "NameOfJar\NameOfFolder\etc"

0

精彩评论

暂无评论...
验证码 换一张
取 消