これは、ファイルがjarファイルのどこにあり、クラスパスをどのように指定するかによって異なります。
は、あなたがパッケージtestapp
(クラスの完全な名前でクラスTest
を考えてみましょうtestapp.Test
がFOREです:私はあなたがうまくいけば、あなたのプロジェクトに適用することができ、このサンプルを作成しましたので残念ながら、あなたは、など、あなたの構造に私たちに多くの情報を与えていません):
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.Test
なので、testappディレクトリにあります)。あなたの構造は次のようになります。
PROJECT_ROOT
testapp
Test.class
infor.properties
注意を、クラスがすでにコンパイルされていることを(おそらくその権利を行う方法を知っています?)。あなたの作業ディレクトリがPROJECT_ROOTあるときは、実行することができます。myjar.jar
という名前のjarファイルを作成します
jar -vcf myjar.jar *
を。今、あなたは(JVMがディレクトリのようなjarファイルであるため)クラスパスがmyjar.jarであること(-cp myjar.jar
使用して)次のコマンドを単純に言う
java -cp myjar.jar testapp.Test
を使用してjarファイルを実行することができます。
Test.javaに表示されているように、"testapp/infor.properties"
があります。プロパティファイルへのパスは、使用するクラスパスに関して指定する必要があります。クラスパスは、myjar.jarコンテンツのルートです。したがって、testapp/infor.properties。
本当にinfor.propertiesはjarファイルにありますか?それを名前を変更して見た目を変えるトレイ。 –
はい、瓶に入っています。 – Ina
どのようにjarファイルを生成しますか?あなたはいくつかのIDEを使用していますか?あるいは 'jar'ユーティリティを使用しますか? –