它取決於你的文件在jar中的位置以及你如何指定你的類路徑。不幸的是,你並沒有給我們太多的信息在你的結構等,所以我創造了這個樣,你希望可以應用到你的項目:
比方說,你在包testapp
(類的全名具有Test
類是有脫穎而出testapp.Test
):
package testapp;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Test {
private static final Logger logger = Logger.getLogger(Test.class.getName());
public static void main(String[] args) {
Properties properties = new Properties();
try {
properties.load(new FileInputStream("testapp/infor.properties"));
System.out.println("" + properties.getProperty("a"));
} catch (IOException e) {
logger.log(Level.SEVERE, "", e);
}
}
}
你在某個目錄PROJECT_ROOT。現在在這個目錄中你有上面編譯的類(在testapp目錄下,因爲你的類的全名是testapp.Test
)。你的結構看起來像這樣:
PROJECT_ROOT
testapp
Test.class
infor.properties
請注意,該類已編譯(您可能知道如何做對嗎?)。當你的工作目錄是PROJECT_ROOT你可以運行:
jar -vcf myjar.jar *
,這將創建一個名爲myjar.jar
罐子。現在,您可以使用下面的命令
java -cp myjar.jar testapp.Test
它簡單地說,(使用-cp myjar.jar
)的類路徑是myjar.jar(JVM對於像目錄的jar)運行jar文件。
正如你在Test.java中看到的,你有"testapp/infor.properties"
。必須根據使用的類路徑指定屬性文件的路徑。類路徑是myjar.jar內容的根。因此testapp/infor.properties。
infor.properties是否真的在jar中?托盤將其重命名爲zip並進行查看。 – 2012-04-26 15:36:00
是的,在罐子裏。 – Ina 2012-04-27 08:13:17
你如何生成罐子?你使用一些IDE嗎?或者你使用'jar'工具嗎? – 2012-04-27 08:46:03