簡體   English   中英

帶導出的可運行jar文件的Java Eclipse錯誤

[英]Java eclipse error with exported runnable jar file

我導出的jar文件有問題。 當我在Eclipse中運行項目時,它運行良好,但是當我從控制台將其作為導出的jar運行時,會收到以下錯誤消息:

java.io.FileNotFoundException: firstLaunch.properties (System can't find file)
or
java.io.FileNotFoundException: resources/config/firstLaunch.properties (System can't find file)

我試圖將其放在資源文件夾中,並將語法從firstLaunch.properties更改為/resource/config/firstLaunch.properties ,但再次說明相同的內容,但路徑不同。 我不知道為什么要這么做。

這是代碼:

public void saveConfigFile(String file, String key, String value) {
    Properties prop = new Properties();
    OutputStream output = null;

    try {

        output = new FileOutputStream(file);

        // set the properties value
        prop.setProperty(key, value);

        // save properties to project root folder
        prop.store(output, null);

    } catch (IOException io) {
        io.printStackTrace();
    } finally {
        if (output != null) {
            try {
                output.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

我執行該方法的語法是

if (properties.loadConfigFile("firstLaunch.properties", "value").equals(properties.loadConfigFile("true.properties", "true"))) {
        properties.saveConfigFile("port.properties", "port", "8795");
        properties.saveConfigFile("ip.properties", "ip", temp[1]);
        properties.saveConfigFile("firstLaunch.properties", "value", "false");
        settings.port = properties.loadConfigFile("port.properties", "port");
        settings.myIp = properties.loadConfigFile("ip.properties", "ip");
    } else {
        settings.port = properties.loadConfigFile("port.properties", "port");
        settings.myIp = properties.loadConfigFile("ip.properties", "ip");
    }

您的問題可能與您如何引用文件位置有關。 添加一些有關如何引用代碼的詳細信息/代碼示例,因此我們一定會為您提供幫助。 話雖如此,這是引用屬性文件的另一種方法:

像這樣將其放在類路徑中:

private static Properties prop = new Properties();
private static String filename = "<name of file>.properties";
InputStream input = <ClassName>.class.getClassLoader().getResourceAsStream(filename);
try {

    if (input==null) {
        loggerOut.log(Level.SEVERE, "Sorry, unable to find " + filename);
    }
    prop.load(input);   
    loggerOut.info("XML In storage path: " prop.getProperty("<property in file>"));
    fileNameAndPath = prop.getProperty("fileNameAndPathIN").trim();
    logNameAndPath = logPath + logName;

} catch (IOException ex) {
    ex.printStackTrace();
} finally {
    if (input!=null) {
        try {
            input.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM