我有用於獲取圖像的loadImage
函數。當我試圖從getFile()
函數中獲取文件時,它才起作用。有沒有辦法使用ClassLoader和getClass()方法從res文件夾中獲取文件
public BufferedImage loadImage(String img) {
BufferedImage bimg = null;
try {
bimg = ImageIO.read(new File("res/" + img));
} catch (Exception e1) {
try {
bimg = ImageIO.read(ClassLoader.getSystemResource("res/" + img));
} catch (Exception e2) {
try {
bimg = ImageIO.read(getClass().getResource("res/" + img));
} catch (Exception e3) {
System.out.println("Cannot load image: " + img);
}
}
}
return bimg;
}
我曾嘗試使用下面的函數嘗試:
public File getFile(String file) {
File f = null;
try {
f = new File("res/" + file);
} catch (Exception e1) {
try {
f = new File(ClassLoader.getSystemResource("res/" + file).getFile());
} catch (Exception e2) {
try {
f = new File(getClass().getResource("res/" + file).getFile());
} catch (Exception e3) {
System.out.println("Cannot load File: " + file);
}
}
}
return f;
}
這些功能都在一個罐子lib和我的其他項目想從罐子LIB文件。
這是在我的項目試圖從罐子裏的lib
File file = files.getFile("config.cfg");
我已經打開了瓶子和檢查,如果該文件的jar內部存在的config.cfg獲取文件。
可怕異常捕獲 – m0skit0
當我把它給了我這個文件的路徑:/ C:/用戶/ 8803286/Dropbox/Workspace/Eclipse /程序/ Sinx%20Core/build/jar/SinxCore.jar!/res/config.cfg – 8803286