0

私は「大規模な」Maven/Java プロジェクトで作業しており、アプリの実行時に発生するエラーを理解できません (正常にコンパイルされます)。私が得るエラーコードは次のとおりです。

java.lang.NoClassDefFoundError: Could not initialize class com.sun.management.OperatingSystem
  at com.sun.management.OSMBeanFactory.getOperatingSystemMXBean(OSMBeanFactory.java:30)
        at sun.management.ManagementFactory.getOperatingSystemMXBean(ManagementFactory.java:100)
        at sun.management.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:308)
        at java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504)
        at com.sun.xml.internal.ws.server.JMXAgent.<init>(JMXAgent.java:49)
        at com.sun.xml.internal.ws.server.JMXAgent.getDefault(JMXAgent.java:77)
        at com.sun.xml.internal.ws.server.WSEndpointImpl.<clinit>(WSEndpointImpl.java:84)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)

それを見ると、VM は「com.sun.management.OperatingSystem」クラスを見つけていないようですが、グーグルで調べた後、そのクラスがどこにあるのかわかりません。

ヒントはありますか?

編集: JRE JDK 1.6.0_18 で実行 (JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18)

4

3 に答える 3

1

それが問題の原因ではないかもしれませんが、JDK が「Program Files」の下に保存されていると、表示されているようなエラーが発生することがあります。Java は、ファイルシステム パスのスペースを好みません。

于 2011-01-20T16:00:35.290 に答える
0

com.sun.management は文書化されていない Java パッケージです。クラス OperatingSystem は、OperatingSystemMXBean の実装です。Java ソース コードをダウンロードすると、そこでクラスを確認できます。

このファイルの場所に関しては、標準の JRE パッケージに含まれている必要があります。アプリケーションが適切な JRE を指していることを確認してください。Java 5/6 では、クラスは rt.jar ファイルにあります。

ファイルがそこにあることを確認したい場合は、JD-Guiなどのプログラムで jar を開き、Jar を調べて確認します。

于 2011-01-20T14:31:26.890 に答える
0

Java 6 および 7 の javadoc を見ると、7 で OSMBeanFactory (スタック トレースにある) が追加されたようです。

Java™ プラットフォームの監視および管理インターフェース (6)

Java™ プラットフォーム DRAFT ea-b120 の監視および管理インターフェイス (7)

于 2011-01-20T14:36:49.510 に答える