2013-08-06 10 views
10

Javaで実行可能なjarファイルを作成したい。 jarを実行すると、ファイルが自動的にJavaクラスから読み込まれるように、いくつかのファイルをjarファイルにインクルードする必要があります。したがって、私はプロジェクトにフォルダを作成し、プロジェクトからこれらのファイルを参照しました。チュートリアルの後にjarファイルを作成しましたが、これらの外部ファイルをjarファイルに含めることができませんでした。外部ファイルを使って実行可能なjarを作成してください。外部ファイルを含むRunnable Jarの作成

マイファイルカルコゲノフルバレン骨格は、私がtest1.javaクラスに abc.txt にアクセスしていますが

Test 
| 
| 
-------src 
|  | 
|  default package 
|      | 
|      | 
|      test1.java 
| 
-------FileFOlder 
|    | 
|    | 
|    abc.txt 

です。私は日食エクスポートオプションを使用して実行可能なjarファイルを作成すると は私のコードは、

public class test1 { 


public static void main(String[] args) throws IOException { 


    char [] read = new char[20]; 
    String path = new File(".").getCanonicalPath(); 
    path = path+"\\Newfolder\\abc.txt"; 
    System.out.println(path); 
    File nF = new File(path); 
    FileReader fR = new FileReader(nF); 
    fR.read(read); 
    for(char c : read){ 
     System.out.print(c); 
    } 
    fR.close(); 
    System.out.println(" Hi..This is test program "); 
} 

} 

ですが、私は瓶内FileFolderディレクトリを参照してくださいすることができません。これに関するいくつかの情報を教えてください。バックあなたのjarファイル内のファイル

プット:

+0

「これらの外部ファイルをjarファイルに含めることができません」と定義します。何故なの? – EJP

答えて

9

はここであなたの代わりに何をすべきかです。 FileFileReaderの代わりにclass.getResourceAsStream()を使用してください。ここでそれを行う方法の説明です:How to really read text file from classpath in Java

+1

ありがとうございました。 jarファイルの中にテキストファイルを置くにはどうすればいいのか教えてください。 – Anup

+0

@Anup何を試しましたか?あなたは今あなたのjarファイルをどのように構築していますか? –

+1

私はEclipse経由でjarファイルを構築しています。私は、エクスポートオプションを選択し、JARを実行して、最後にクラスを選択します。他のフォルダを選択するオプションはありませんでした。 – Anup

11

問題が解決しました!右のプロジェクトフォルダをクリックして、新しいフォルダを作成

1):ここ

はどのようにあります。

2)梱包したいすべてのファイルをそのフォルダに移動します。

3)project -> properties -> Build Path -> Source -> Add Folderをクリックし、作成したフォルダを選択します。

4)あなたのJARを作成してください!

すでにabc.txt insideitでフォルダを作成しているので

、あなたは手順1を省略することができますし、2

EDIT:片道あなたのJARは7zipをを使用することですこれらのファイルが含まれていることを確認することができます。

+0

ありがとうございます。指定したjarファイルが作成され、jarファイルにテキストファイルがあります。しかし、私は自分のコードからそのファイルにアクセスする方法を見つけることができません。私がjarファイルを実行すると、FileNotFound例外が発生します。私はそのファイルを使用して内容を読むことができません。もしあなたがこれについて何か知らせてください。 – Anup

+0

私はこれを自分でやったことはありませんが、少しブラウジングした後に[this](http://stackoverflow.com/questions/2593154/get-a-resource-using-getresource)stackoverflow questionを見つけました。あなたのクラスパス上のファイルにアクセスするための 'ClassLoader'ユーザをあなたのabc.txtを含めることができると思われます。 – scottyseus

+0

私は私が[' answer']を見つけたかもしれないと思います(http://stackoverflow.com/questions/1464291/どのように実際に読むテキストファイルからclasspath-in-java) – scottyseus

関連する問題