我正在用Java开发游戏,当我以intellij idea运行它而没有错误时,一切都很好。
当我将项目构建为jar文件时,问题就开始了。
我有这种方法:
context
这是类加载器:
public void addImageOfObject(String add, String dir, ArrayList<ImageIcon> linkedList, Dimension size) {
Image image;
String dirc;
File file = null;
try {
file = new File(classLoader.getResource(dir).getFile());
} catch (Exception e) {
JOptionPane.showMessageDialog(StaticVariables.mainClass, e.getStackTrace());
}
try {
for (int i = 0; file.listFiles().length > i; i++) {
try {
dirc = dir + i + ".png";
image = loadImage(dirc);
linkedList.add(new ImageIcon(image.getScaledInstance(size.width, size.height, 4)));
} catch (Exception e) {
JOptionPane.showMessageDialog(StaticVariables.mainClass, e.getStackTrace());
e.printStackTrace();
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(StaticVariables.mainClass, e.getStackTrace());
JOptionPane.showMessageDialog(StaticVariables.mainClass, "file not found ");
}
}
当我在jar文件中运行文件时,我无法获得文件的正确路径。
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
我在这一行调用方法:
file = new File(classLoader.getResource(dir).getFile());
这是文件的路径
我要获取的文件imageLoader.addImageOfObject("src/main/java/","ImageHandel/Photos/character/male/attack/down/",aMale,new Dimension(500,400));
在男性文件夹中有44个文件..那是我想要在循环44次上运行的数量,我只是找不到正确的方法!我尝试了很多事情,但没有任何帮助..
有什么问题吗?
答案 0 :(得分:0)
只需在运行的jar文件的位置创建文件夹,
ImageHandel /照片/角色/男性/攻击/按下/
通过考虑该位置在jar文件中运行它。
用于添加用于提供图片的静态文件夹,例如,在春季启动中,我们可以按以下方式配置静态文件夹:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/ImageHandel/**")
.addResourceLocations("file:ImageHandel/")
.setCachePeriod(0);
}