2017-06-29 17 views
-6

Eclipseでコードを実行すると完全に正常に動作しますが、コマンドラインで実行するとエラーが発生します。働く答えを見つけてください。私が手にエラーが以下の通りです:事前にプロジェクトはEclipseで実行されますが、コマンドラインでは実行されません。ファイルが見つかりません例外

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

ありがとう!

+0

jvmはsrc \ data \ pokemon.csvを作業ディレクトリから探しています。ファイルがEclipseプロジェクトの中にあるようです。これは以前に尋ねられています。 – efekctive

答えて

-1

プロジェクトルートではなく、ビルドディレクトリからプログラムを起動していると仮定します。したがって、パスsrc \ data \ pokemon.csvを解決することはできません。 jarをプロジェクトルートにコピーするか、プロジェクトルートディレクトリからプログラムを起動する必要があります。java -jar Builds \ v1.0.jar

+0

jarを実行可能なjarとして構築し、その中にファイルが含まれています。 [Jarファイル構造](http://imgur.com/a/ajilV) –

+0

FileReaderを使用してjarから読み込むことはできません。 pokemon.csvはまだsrcディレクトリにありますので、Eclipseで動作しますので、あなたのプログラムはそれを使用します。 jarファイルを読み込みたい場合は、クラスローダーのgetResourceAsStreamメソッドを使用する必要があります。パスから「src」を削除する必要があります。したがって、これはちょうどthis.getClass()。getResourceAsStream( "data/pokemon.csv") です。これでリーダーを使用する場合は、read()メソッドでInputStreamReaderを使用する必要があります。 新しいInputStreamReader(this.getClass()。getResourceAsStream( "data/pokemon.csv")) – fhossfel

関連する問題