簡體   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