特定のXMLファイルを処理し、プレーンテキストを抽出するEclipseプロジェクトから実行可能なJARを作成しました。ただし、このバージョンでは、ファイルをコードにハードコーディングする必要があります。
このようなことをする方法はありますか
Java -jar wiki2txt enwiki-20111007-pages-articles.xml
jarをxmlファイルで実行していますか?
私はいくつか調べてみましたが、与えられたすべての例はコマンドラインでJARをコンパイルすることに関係しており、引数を渡すことを扱っていません。
何故なの ?
単にMain-Class
引数を受け取り、引数に基づいて動作します。
public class wiki2txt {
public static void main(String[] args) {
String fileName = args[0];
// Use FileInputStream, BufferedReader etc here.
}
}
コマンドラインでフルパスを指定します。
Java -jar wiki2txt /home/bla/enwiki-....xml
コマンドラインでJavaプロパティ、つまり環境変数)を設定し、コード内のどこでも簡単に使用することもできます。
コマンドラインは次のように実行されます。
c:/> Java -jar -Dmyvar = enwiki-20111007-pages-articles.xml wiki2txt
そしてJavaコードは次のように値にアクセスします:
String context = System.getProperty("myvar");
Javaで渡す引数 に関するこの質問を参照してください。
コマンドラインでプログラム引数を渡し、Javaアプリで次のように取得できます。
public static void main(String[] args) {
String pathToXml = args[0];
....
}
または、コマンドラインを次のように変更してシステムプロパティを渡します。
Java -Dpath-to-xml=enwiki-20111007-pages-articles.xml -jar wiki2txt
そしてあなたのメインクラス:
public static void main(String[] args) {
String pathToXml = System.getProperty("path-to-xml");
....
}
この方法でアプリケーションを実行すると、Java excecutableがjar内のMANIFESTを読み取り、定義したメインクラスを見つけます。このクラスにはmainという静的メソッドがあります。このメソッドでは、コマンドライン引数を使用します。