1

STS (Spring Source Tool) で 1 つの Spring プロジェクトを作成しましたが、これは STS で正常に動作 (コンパイルと実行) しますが、ターミナルからクラス ファイルを実行すると、次のようなエラーが発生します。

スレッド「メイン」での例外 java.lang.NoClassDefFoundError: com/XXXX/XXXX/Operations
原因: java.lang.ClassNotFoundException: com.XXXX.XXXX.Operations

以下は私の .classpath ファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java" />
<classpathentry kind="src" output="target/test-classes"path="src/test/java" />
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/
org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5" />
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER" />
<classpathentry kind="output" path="target/classes" />
<classpathentry exported="true" kind="var" path="M2_REPO" />
</classpath>
4

2 に答える 2

1

あなたのエラーは、「Operations.class」ファイルが target/classes フォルダーにないことを示唆しています (または、パッケージ名にタイプミスがあります)。

まず、クラスが期待どおりの場所にあることを確認します。

cd [project root]/target/classes
ls com/XXXX/XXXX/Operations.class

これにより、ファイルが存在することが証明された場合は、言及した java コマンドを使用できるはずです。

java com.XXXX.XXXX.Operations

Java は、"Operations" パッケージ内の "class" というファイルをロードしようとしていると想定するため、最後に ".class" を追加しないでください。

ファイルが欠落している場合 (欠落していると思われます)、STS ( Project-> Build Project) でビルドを実行して作成する必要があります。


アップデート

エラーが発生していることをコメントで述べています。

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

これはまったく別の問題です。つまり、Java コマンドで Spring ライブラリを参照していないため、Java はそれらを見つける場所を認識していません。

プログラムを実行する前に、プログラムを STS でパッケージ化することをお勧めします。これは、Java 開発者がアプリケーションを構築してデプロイする一般的な方法です。この記事では、これを行う方法に関する簡単なチュートリアルを提供します (STS は Eclipse のバリアントです)。

追加 - 更新された質問は、このアプリケーションで Maven も使用していることを示唆しています。その場合、Eclipse の代わりに「mvn パッケージ」を使用してプロジェクトをビルドできます。このチュートリアルを読んで、Maven の使用を開始してください: http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

パッケージ化せずにプログラムを実行したい場合。コマンドで使用しているすべての Jar ファイルを参照する必要があります(これは単なる例です。「spring.jar」を使用している正しい Jar ファイルに置き換えてください)。

java -classpath .;../../lib/spring.jar com.XXXX.XXXX.Operations
于 2012-04-12T10:47:04.930 に答える
0

通常、アプリケーションを起動するために必要なすべてのクラスとリソースを含む jar ファイルを作成します。その後、アプリを簡単に起動できます。

java -cp youapp-full.jar  com.XXXX.XXXX.Operations

そして、Operationsクラスにはもちろんmainメソッドが必要です

于 2012-04-12T11:04:20.660 に答える