mavenを使用して実行可能なjarをビルドする際に問題がありますが、jarを作成しますが、ファイルが見つからないために開くことができません。もう 私はファイルへの絶対パスを追加した場合、それは素晴らしいresourceを含むmavenで実行可能なjar
ClassLoader classLoader = SelectionLab.class.getClassLoader();
File file = new File(classLoader.getResource("Opstine.shp").getFile());
if (file == null) {
return;
}
とここに私のpom.xml
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>geotools.SelectionLab</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
それはパスF上のjar内のファイルを検索している私はmessagepaneとして絶対パスを取得しようとしたシェープファイルをエクスポートした後、私はこの 得るが、私はわからない:\ワークスペース\ osma_grupa \ osma_grupa \ターゲットの\ osma_grupa-0.0.1 -SNAPSHOT-jar-with-dependencies.jar またはファイルの前にもこの部分を使用します。私はちょうど確認し、瓶のルートにファイルがあります
は、新しいファイルファイルファイルを作成することができます=新しいファイル();その絶対パスを表示してください。そうすれば、デバッグしてそれに応じてファイルを配置する方が簡単になります。 – sathya
私は絶対パスで何を得るのか分かりませんので、私が得たものの画像を投稿しました –
eclipseから実行している場合は、おそらくあなたのリソースパスが変更されていないと思われます。あなたがeclipseのインストールフォルダにファイルを置くと、それが動作するかもしれません。また、ダミーファイルを作成してそのアドレスを取得するように求めましたが、システムがファイルを探している場所をデコードすることができます。私たちのクラスローダーの実装の前に – sathya