繁体   English   中英

用Java创建jar文件时如何获取文件路径

[英]How to get the path of file when make a jar file in Java

我正在用Java开发游戏,并且以intellij idea运行它时一切正常,没有错误。

当我将项目构建为jar文件时,问题就开始了。

我有这种方法:

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 ");
    }
}

这是类加载器:

ClassLoader classLoader = ClassLoader.getSystemClassLoader();

当我在jar文件中运行它时,我无法获取文件的正确路径。它给出了一个错误文件,该文件未在以下位置找到:

file = new File(classLoader.getResource(dir).getFile()); 

我在这一行调用方法:

imageLoader.addImageOfObject("src/main/java/","ImageHandel/Photos/character/male/attack/down/",aMale,new Dimension(500,400));

这是文件的路径

在此处输入图片说明

我要获取的文件数file.listFiles()

在此处输入图片说明

在男性文件夹中,有44个文件..那是我想要在循环44次上运行的数量,我只是找不到正确的方法! 我尝试了很多事情,但没有任何帮助。

知道有什么问题吗?

您只需在运行的jar文件的位置创建文件夹,

ImageHandel /照片/角色/男性/攻击/向下/

通过考虑该位置在jar文件中运行它。

用于添加用于提供图片的静态文件夹,例如,在春季启动中,我们可以如下配置静态文件夹:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/ImageHandel/**")
            .addResourceLocations("file:ImageHandel/")
            .setCachePeriod(0);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM