0

かなり前に作成した jar ファイル ( xl-importer.jar) の読み込みが停止しました。MANIFEST.MFファイルは次のとおりです。

Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: class/Client

Client.jar ファイル内のフォルダー /class/ 内にクラスがありますが、常に次のエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: class/Client (wrong name: Client)

ただしjava Client、/class/ フォルダー内で実行すると、アプリケーションは正常に実行されます。

Jar は、数年前に 32 ビット コンパイラで作成されました。私の顧客は、しばらく前に Windows 2003 Server に移行しました。それが理由ですか?その前にJarファイルがロードされていました。

4

2 に答える 2

1

Javaチュートリアルでは、Main-Classが次のように指定されていることを指定しています:

メインクラス: MyPackage.MyClass

そのため、「/」を「.」に置き換える必要がある場合があります。

クラスが「class」というディレクトリにある場合は、クラス パッケージに配置する必要があります。「class」はJavaのキーワードであるため、パッケージ名には使用できません。フォルダー名を「classes」などの別の名前に変更し、パッケージ ステートメントを Java ファイルに追加する場合は、「.」を使用してクラスを参照します。「/」ではなく、機能するはずです。とにかく私のものでした:)例

マニフェスト:

Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: classes.Client

クライアント.java:

package classes;

public class Client{

//do code...

}
于 2012-09-04T13:37:28.470 に答える
1

これは、新しいマニフェストがどのように見えるかです (Java 6)

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass

私の推測では、Java 5 は別のプロトコルを使用していました。

上記のようにメインクラスを変更してみてください。

于 2012-09-04T13:37:45.367 に答える