2012-12-07 14 views
5

Zrobiłem mały program w Javie, który wyświetla jego źródło .java z gui. W tym celu nie korzysta z FileChooser. Czytam źródła .java przy pomocy poniższych stwierdzeńUżyj własnych plików .java projektu jako plików zasobów

String resName = "/dev/classes/"+name+".java" 
Scanner s = new Scanner(FilePrinter.class.getResourceAsStream(resName)); 

gdzie name jest nazwą pliku .java to znaczy, jeśli plik jest MyProg.java następnie name==Myprog. Oczywiście mój program znajduje się wewnątrz pakietu

Chodzi o to, że kiedy eksportuję mój projekt do JAR i dołączam pliki źródłowe, to działa, ponieważ pliki źródłowe znajdują się wewnątrz katalogu /dev/classes/.

Jednak nie znalazłem jeszcze sposobu, aby mój program działał w Eclipse lub z wiersza poleceń, nie dając mi wyjątku.

Oczywiście, gdy ktoś spróbuje dodać te pliki źródłowe, które będą automatycznie używane jako pliki zasobów, proces się nie powiedzie.

Czy mogę w jakiś sposób użyć tego samego kodu zarówno podczas uruchamiania z Eclipse, jak iz JAR? To musi być coś bardzo trywialnego, ale ponieważ nie jestem ekspertem od Javy, nie widzę.

+0

jest to tylko kwestia zapewnienia źródło jest wewnątrz Eclipse sprawia, że ​​Jar. Jeśli tak, to zadziała. –

+0

Dziękuję @ andrew-thompson. Zapewniłem to i działa wewnątrz słoika, ale nie działa bezpośrednio z Eclipse. I jak możesz zrozumieć, to nie jest tak, jak zwykły, powiedzmy, plik .txt. Pliki .java nie są kopiowane przez Eclipse do katalogu/bin /! –

+0

* "to nie jest tak, jak w zwykłym, powiedzmy, pliku .txt." * Źródło Java jest zwykle określonym kodowaniem, a rozszerzenie jest inne i chociaż ma w sobie kod "Java", to jest bardzo podobne do tekstu plik do komputera (lub oprogramowania). –

Odpowiedz

0

Znalazłem, jak to zrobić. Właściwie musisz użyć Ant lub Maven. Można to jednak zrobić w środowisku Eclipse, a także:

W oknie Właściwości projektu Eclipse> Ścieżka budowania Java można wybrać na dole domyślny folder wyjściowy: <your_project_name>/src.

Powoduje to, że pliki klas są kompilowane w tym samym katalogu co pliki .java i na koniec robią to, co chciałem.

Dzięki @AndrewThompson za sugestię spróbować tego

Powiązane problemy