2013-08-06 11 views
10

Ich möchte ein lauffähiges Jar in Java erstellen. Ich muss einige der Dateien in das Jar einfügen, damit die Dateien beim Ausführen von jar automatisch aus der Java-Klasse gelesen werden. Daher habe ich einen Ordner im Projekt angelegt und diese Dateien aus dem Projekt bezogen. Ich habe JAR-Datei nach einem Tutorial erstellt, aber ich konnte diese externen Dateien nicht in meine JAR-Datei aufnehmen. Bitte lassen Sie mich über das Erstellen von ausführbaren Jar mit externen Dateien.Runnable Jar mit externen Dateien erstellen

Meine Datei struture ist

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

I abc.txt in test1.java Klasse bin erreichbar. Mein Code ist,

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 "); 
} 

} 

Wenn ich erstelle ausführbare jar Eclipse Export-Option, ich bin nicht in der Lage FileFolder Verzeichnis im Glas zu sehen. Bitte gib mir einige Informationen dazu.

+0

Definieren Sie 'nicht in der Lage, diese externen Dateien in meine JAR-Datei aufzunehmen'. Warum nicht? – EJP

Antwort

9

Hier ist, was Sie sollten stattdessen tun:

Put, die zurück in Ihre JAR-Datei-Datei. Verwenden Sie class.getResourceAsStream(), um es anstelle von File und FileReader zu lesen. Hier ist eine Erklärung, wie man das macht: How to really read text file from classpath in Java

+1

Vielen Dank für Ihre Antwort. Könnten Sie mir bitte mitteilen, wie ich meine Textdateien in die JAR-Datei einfügen kann? – Anup

+0

@Anup was hast du probiert? Wie erstellst du deine JAR-Datei jetzt? –

+1

Ich erstelle JAR-Dateien über Eclipse. Ich wähle Export-Option und dann Runnable Jar und wählt schließlich die Klasse. Ich habe keine Optionen zur Auswahl eines anderen Ordners erhalten. – Anup

11

Problem gelöst!

hier, wie:

1) rechts Projektordner klicken und einen neuen Ordner erstellen.

2) Verschieben Sie alle Ihre Dateien, die Sie in den jar in diesem Ordner gepackt haben möchten. Klicken Sie auf project -> properties -> Build Path -> Source -> Add Folder und wählen Sie den soeben erstellten Ordner aus.

4) Erstellen Sie Ihre JAR!

Da Sie bereits Ihre Ordner mit abc.txt insideit erstellt haben, können Sie die Schritte 1 und 2

EDIT überspringen: eine Art und Weise können Sie Ihre JAR enthält diese Dateien stellen Sie sicher, ist 7zip zu verwenden.

+0

Vielen Dank. Ich habe die JAR-Datei wie angegeben erstellt und die Textdatei in der JAR-Datei gespeichert.Aber jetzt kann ich keine Möglichkeit finden, über meinen Code auf diese Datei zuzugreifen. Wenn ich meine JAR-Datei ausführe, erhalte ich die FileNotFound-Ausnahme. Ich kann diese Datei nicht verwenden und den Inhalt nicht lesen. Bitte lassen Sie mich wissen, wenn Sie etwas darüber haben. – Anup

+0

Ich habe das nie selbst gemacht, aber nach ein wenig browsen fand ich [http://stackoverflow.com/questions/2593154/get-a-resource-using-getresource] stackoverflow Frage. es scheint, dass Sie 'ClassLoader' verwenden können, um auf Dateien auf Ihrem Klassenpfad zuzugreifen, der Ihre abc.txt – scottyseus

+0

oooh einschließen würde ich denke, dass ich das [' answer'] gefunden haben könnte (http://stackoverflow.com/questions/1464291/ how-to-real-read-Text-Datei-from-Klassenpfad-in-Java) – scottyseus

Verwandte Themen