2012-02-15 22 views
0

mavenプロジェクトをjarファイルにビルドした後、私はFileNotFoundExceptionを取得します。ここでjavenをビルドした後のMavenリソースファイル

final File file = new File("maps/ParcelsCountyRDMFinal5.shp"); 

例外です:

C:\Users\ilija\Desktop\MavenizedCP\cp-map\target>java -jar cp-map-0.0.1-SNAPSHOT 
-shaded.jar 

Exception in thread "main" java.io.FileNotFoundException: C:\Users\ilija\Desktop 
\MavenizedCP\cp-map\target\maps\ParcelsCountyRDMFinal5.shp (The system cannot fi 
nd the path specified) 

ここで作業ディレクトリが明らかにディレクトリである私は、リソースファイルは、プロジェクトが、私はこれが私のファイルを取得するために使用するために構築された後、ルートディレクトリにあることを知っていますそこから私は瓶を走らせたい。作業ディレクトリはjarファイルのルートでなければならないと思います。

ここをクリックしてください。私は間違って何をしていますか?

+0

?それはC:\ maps \ ParcelsCountyRDMFinal5.shpにありますか、それはresourcesディレクトリのあなたのmavenプロジェクトの一部ですか? – eigil

+0

私のプロジェクトリソースディレクトリの一部です! – ilija

答えて

0

ファイルはクラスパスにあります。最終的なFile file = ClassLoader.getSystemResource( "maps/ParcelsCountyRDMFinal5.shp")。getFile();を試すことができます。

+1

falseスレッド "main"の例外java.io.FileNotFoundException:C:¥Users¥ilija¥Desktop¥MavenizedCP¥cp-map¥target¥file:¥C:¥Users¥ilija¥Desktop¥MavenizedCP¥cp-map¥targe t \ cp-map-0.0.1-SNAPSHOT.jar!\ maps \ ParcelsCountyRDMFinal5.shp(ファイル名、ディレクトリ名、またはボリュームラベルの構文が間違っています)これはプロポーザルを試した後に表示されます。最初のfalseは、私がチェックした関数file.canRead()によるものです。 – ilija

0

これは、jarファイル内にバンドルされているリソースファイルの絶対パスを取得する方法です。

URI fileURI = Thread.currentThread().getContextClassLoader() 
       .getResource("ParcelsCountyRDMFinal5.shp").toURI(); 
filepath = new File(fileURI).getAbsolutePath(); 

これは私の作品...まさにあなたのParcelsCountyRDMFinal5.shpファイルです

関連する問題