簡體   English   中英

找不到屬性文件:java.io.FileNotFoundException使用命令行運行Java程序

[英]Property file is not found :java.io.FileNotFoundException run java program using command line

我有一個包含多個包和類的Java項目。 稱為Driver.java的主要類如下:

package net.librec.tool.driver;
import net.librec.conf.Configuration;
import net.librec.job.RecommenderJob;
import net.librec.math.algorithm.Randoms;

import java.io.FileInputStream;
import java.util.Properties;

/**
 * Created by Himan on 12/5/2016.
 */
public class Driver {

    // Change this to load a different configuration file.
    public static String CONFIG_FILE =
            "conf/NBayes.properties";

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();

        String confFilePath = CONFIG_FILE;
        Properties prop = new Properties();
        prop.load(new FileInputStream(confFilePath));
        for (String name : prop.stringPropertyNames()) {
            conf.set(name, prop.getProperty(name));
        }

        Randoms.seed(20161205);
        RecommenderJob job = new RecommenderJob(conf);
        job.runJob();
        System.out.print("Finished");
    }
}

如您所見,在此類中,我閱讀了NBayes.properties。 這是我的項目結構的快照:

項目結構

我創建了一個名為librec.jar的jar文件。 但是,當我使用以下命令在命令行中運行程序時:

java -jar librec.jar 

我收到以下錯誤:

java.io.FileNotFoundException: conf/NBayes.properties (No such file or directory)

有什么問題,什么是運行此程序的正確方法? 是否需要制作jar文件?

執行.jar文件時,當前工作目錄需要包含conf/目錄。

顯然不是。 您需要重新組織您的發行版。 否則,如果屬性文件是只讀的,則將它們放在 .jar文件中,並通過例如Class.getResourceAsStream()作為資源訪問它們。

暫無
暫無

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

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