1

オンラインAPI( Githubのソース)と対話するサンプルスクリプトである最初のJavaプログラムを実行しようとしています。

依存関係があるため、とを使用して推奨される手順に従いますmvn testmvn packageこれは機能しているようです(出力を参照)。

ただし、コンパイルした(またはパッケージ化した)プログラムを実行する方法がわかりません。.javaファイルにはが含まれているので、 (ベースディレクトリで)ファイルにpublic final class NesstarStudyLister基づいてpom.xml次のコマンドを試します。

mhermans@fyr:~/tmp/nesstar-api-demo$ java -cp target/nesstar_study_lister-1.0-SNAPSHOT.jar com.nesstar.demo.NesstarStudyLister

その結果NoClassDefFoundError

どうすれば小さなJavaプログラムを正常に実行できますか?

編集

Dave Newtonの推奨に基づいて、ExecMavenプラグインを使用しました

mvn exec:java -Dexec.mainClass=com.nesstar.demo.NesstarStudyLister

ベースディレクトリにあり、Javaプログラムを完璧に実行します。

Andriy Plokhotnyukによるソリューションも、次のコマンドを使用して機能します。

(edit pom.xml to include the <build>...</build> information)
mvn package
java -jar target/nesstar_study_lister-1.0-SNAPSHOT-jar-with-dependencies.jar
4

3 に答える 3

2

最も簡単な方法は、通常、ExecMavenプラグインです。

一言で言えば:

  • execプラグインを依存関係として追加します。
  • メインクラス属性(プログラムのエントリポイント)を定義します。
  • execゴールを実行します。

Mavenを使用して、プロジェクトの依存関係(jar)を含むディレクトリを作成し、クラスパスを手動で設定することもできますが、プラグインを使用できる場合、IMOは一種の苦痛です。

プロジェクトのすべての依存関係を1つのファイルに含めるjarを作成することもできますが、競合する依存関係を明示的に含める/除外するには、もう少し作業が必要になる場合があります。(これは他の方法でも問題になる可能性があることに注意してください。)

于 2012-07-13T17:35:42.723 に答える
2

次のプラグイン構成を追加して、実行可能jarを準備します。

 <project>
 ....   
   <build>
       <plugins>    
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <phase>package</phase>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass>com.nesstar.demo.NesstarStudyLister</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </execution>
            </executions>
        </plugin>

       </plugins>
   </build>
  ...
</project>

次に、ターゲットディレクトリに移動して、次のコマンドを実行します。

java -jar nesstar_study_lister-1.0-SNAPSHOT-jar-with-dependencies.jar 
于 2012-07-13T17:45:12.077 に答える
0

実行可能なjarファイルを作成してから、java -jar filedirectory/fileName.jarを使用する必要があります。

于 2012-07-13T17:33:12.783 に答える