2013-08-06 16 views
10

Chcę zbudować działający plik jar w języku Java. Muszę uwzględnić niektóre pliki w jar, tak aby po wykonaniu jar pliki są automatycznie odczytywane z klasy java. Stąd stworzyłem folder w projekcie i odesłałem te pliki z projektu. Po utworzeniu samouczka utworzyłem plik jar, ale nie mogłem dołączyć tych plików zewnętrznych do mojego pliku jar. Proszę pozwolić mi na stworzenie działającego słoika z plikami zewnętrznymi.Tworzenie zepsutego słoika z dołączonymi plikami zewnętrznymi

Mój plik struture jest

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

mam dostępu abc.txt w test1.java klasy. Mój kod jest

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

} 

Kiedy tworzę wykonywalny słoik przy użyciu Eclipse opcję eksportu, nie jestem w stanie zobaczyć katalog FileFolder wewnątrz słoika. Proszę, daj mi trochę informacji na ten temat.

+0

Zdefiniuj "nie można uwzględnić tych plików zewnętrznych w moim pliku jar". Dlaczego nie? – EJP

Odpowiedz

9

Oto, co należy zrobić, zamiast:

umieścić ten plik z powrotem w pliku jar. Użyj class.getResourceAsStream(), aby go przeczytać zamiast File i FileReader. Oto wyjaśnienie, jak to zrobić: How to really read text file from classpath in Java

+1

Dziękuję za odpowiedź. Czy mógłbyś dać mi znać, jak mogę umieścić moje pliki tekstowe w pliku jar. – Anup

+0

@ Co masz spróbować? Jak teraz budujesz swój plik jar? –

+1

Buduję pliki jar za pośrednictwem Eclipse. Wybieram opcję Eksportuj, a następnie uruchamiam Jar i ostatecznie wybieram klasę. Nie otrzymałem żadnych opcji wyboru innego folderu. – Anup

11

Problem rozwiązany!

oto jak:

1) kliknij prawym przyciskiem myszy folder projektu i utworzyć nowy folder.

2) Przenieś wszystkie pliki, które chcesz spakować do słoika do tego folderu.

3) kliknij project -> properties -> Build Path -> Source -> Add Folder i wybierz utworzony właśnie folder.

4) utwórz swój JAR!

Skoro masz już utworzony folder z abc.txt insideit, można pominąć kroki 1 i 2

EDIT: jeden sposób można upewnić się, że pojemnik zawiera tych plików jest użycie 7zip.

+0

Dziękuję bardzo. Stworzyłem plik JAR, jak określiłeś i dostałem plik tekstowy w pliku jar.Ale teraz nie mogę znaleźć sposobu na dostęp do tego pliku z mojego kodu. Kiedy uruchamiam mój plik JAR, otrzymuję wyjątek FileNotFound. Nie mogę używać tego pliku i czytać treści. Daj mi znać, jeśli coś na ten temat. – Anup

+0

Nigdy tego nie robiłem, ale po drobnym przeglądzie znalazłem pytanie [this] (http://stackoverflow.com/questions/2593154/get-a-resource-using-getresource) stackoverflow. wygląda na to, że możesz użyć użytkownika 'ClassLoader', aby uzyskać dostęp do plików w swojej ścieżce klas, które obejmowałyby twój abc.txt – scottyseus

+0

oooh Myślę, że mogłem znaleźć [' odpowiedź'] (http://stackoverflow.com/questions/1464291/ how-to-really-read-text-file-from-classpath-in-java) – scottyseus

Powiązane problemy