1

オープンソースソフトウェアをコンパイルしようとしています。ビルドは正常に機能し、jarファイル「five-server.jar」になります。cmdからこのファイルを実行しようとすると、これらのエラーが発生します。

C:\Users\vickey\code\five-server\dist\main>java -jar five-server.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.devtcg.five.Main. Program will exit.

何が悪いのか提案はありますか?

4

3 に答える 3

5

SWT Jar ファイルはプラットフォームに依存します。http://www.jarfinder.com/index.php/java/info/org.eclipse.swt.SWTErrorを参照してください。

たとえば、Windows では、適切な jar は次のようになります: org.eclipse.swt.win32.win32.x86_3.1.0.jar

または Mac OS X の場合: swt-macosx-3.0m7.jar

等々。この依存関係を追加すると、たとえば 32 ビットまたは 64 ビットのライブラリを使用しているかどうかに関係なく、呼び出しに関するさまざまな問題が発生する可能性があります。

最近、この種の依存関係の問題が頻繁に発生するのは残念です:-(

于 2012-08-29T15:02:54.620 に答える
1

少なくともクラスorg.eclipse.swt.SWTErrorまたはそれを含むjarが含まれるように、クラスパスを設定する必要があります。

java -classpath path/to/jar/containing/org.eclipse.swt.SWTError -jar five-server.jar

また、マニフェストファイルのMain-class属性を設定する必要があります。five-server.jar

于 2012-08-14T19:28:49.863 に答える