2017-06-29 2 views
-6

Wenn ich den Code in Eclipse ausführen läuft es einwandfrei, aber wenn ich es über die Befehlszeile ausführen, hat es einen Fehler, ich habe mich umgesehen, konnte aber nicht finde eine Antwort, die funktioniert. die Fehler, die ich erhalten, ist unten:Projekt läuft in Eclipse, aber nicht in der Befehlszeile: Datei nicht gefunden exception

C:\Users\Name\Documents\Java Projects\PokemonBattle\Builds>java -jar v1.0.jar 

java.io.FileNotFoundException: src\data\pokemon.csv (The system cannot find the path specified) 
     at java.io.FileInputStream.open0(Native Method) 
     at java.io.FileInputStream.open(Unknown Source) 
     at java.io.FileInputStream.<init>(Unknown Source) 
     at java.io.FileInputStream.<init>(Unknown Source) 
     at java.io.FileReader.<init>(Unknown Source) 
     at pokemonFramework.ReadCSV.read(ReadCSV.java:30) 
     at pokemonFramework.Pokemon.getPkmnInfo(Pokemon.java:174) 
     at main.PokemonBattleClient.<init>(PokemonBattleClient.java:64) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 

     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 

     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at java.lang.Class.newInstance(Unknown Source) 
     at processing.core.PApplet.runSketch(PApplet.java:10453) 
     at processing.core.PApplet.main(PApplet.java:10279) 
     at processing.core.PApplet.main(PApplet.java:10261) 
     at main.PokemonBattleClient.main(PokemonBattleClient.java:89) 
java.lang.NullPointerException 
     at pokemonFramework.ReadCSV.read(ReadCSV.java:47) 
     at pokemonFramework.Pokemon.getPkmnInfo(Pokemon.java:174) 
     at main.PokemonBattleClient.<init>(PokemonBattleClient.java:64) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 

     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 

     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at java.lang.Class.newInstance(Unknown Source) 
     at processing.core.PApplet.runSketch(PApplet.java:10453) 
     at processing.core.PApplet.main(PApplet.java:10279) 
     at processing.core.PApplet.main(PApplet.java:10261) 
     at main.PokemonBattleClient.main(PokemonBattleClient.java:89) 

File structure of JAR

Vielen Dank im Voraus!

+0

aus dem Projektstammverzeichnis starten. Das jvm sucht src \ data \ pokemon.csv aus seinem Arbeitsverzeichnis . Es scheint, dass sich die Datei im Eclipse-Projekt befindet. Dies wurde zuvor gefragt. Suche weiter – efekctive

Antwort

-1

Ich nehme an, Sie starten das Programm aus dem Verzeichnis Builds - nicht das Projekt root. Daher kann der Pfad src \ data \ pokemon.csv nicht aufgelöst werden. Sie müssen entweder das jar in den Projektstamm kopieren oder das Programm mit java -jar Builds \ v1.0.jar

+0

Ich habe das Glas als lauffähiges Glas gebaut und es enthält die darin enthaltenen Dateien. [Jar File Structure] (http://imgur.com/a/ajilV) –

+0

Sie können mit einem FileReader nicht aus einem Jar lesen. Es funktioniert unter Eclipse, weil pokemon.csv immer noch im src-Verzeichnis verfügbar ist - Ihr Programm verwendet das also. Wenn Sie eine Datei aus einem Jar lesen möchten, müssen Sie die Methode getResourceAsStream des Classloaders verwenden. Und Sie müssen die "src" aus dem Pfad entfernen. Es ist also nur this.getClass(). GetResourceAsStream ("data/pokemon.csv") Wenn Sie einen Reader verwenden wollen, müssen Sie den InputStreamReader in Ihrer read() Methode verwenden. neuer InputStreamReader (this.getClass(). GetResourceAsStream ("data/pokemon.csv")) – fhossfel

Verwandte Themen