2011-01-20 8 views
0

Я работаю над проектом «biggish» Maven/Java и не могу понять, какую ошибку я получаю при запуске приложения (он компилируется в порядке). Код ошибки я получаю:Java NoClassDefFoundError

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», но после того, как прибегая к помощи вокруг, я не могу найти, где это класс должен быть расположен.

Любые подсказки?

EDIT: Запуск с JRE JDK 1.6.0_18 (JAVA_HOME = C: \ Program Files \ Java \ jdk1.6.0_18)

+0

В какой версии Java вы запускаете приложение? –

+0

Можете ли вы разместить свои соответствующие части вашего maven и сценарий запуска. – Sean

ответ

1

Это может быть не то, что вызвав вашу проблему, но ошибки, подобные тем, которые вы видите, могут возникать, когда JDK хранится в «Program Files». Java не любит пробелы в пути к файловой системе.

0

com.sun.management недокументированная пакет Java. Класс OperatingSystem - это реализация для OperatingSystemMXBean. Если вы загрузите код Javasource, вы сможете увидеть там класс.

Что касается местоположения этого файла, оно должно быть в вашем стандартном пакете JRE. Убедитесь, что ваше приложение указывает на надлежащую JRE. В Java 5/6 класс можно найти в файле rt.jar.

Если вы хотите, чтобы подтвердить файл, откройте банку в программе, например JD-Gui, и оглянитесь вокруг банки для подтверждения.

+0

Yup, OperatingSystem.class и все остальные файлы в разделе «rt.jar \ com \ sun \ management - ZIP архив» есть. Таким образом, кажется, что ошибка не вызвана этим – obaqueiro

0

Глядя на Javadocs для Java 6 и 7, то оказывается, что OSMBeanFactory (который находится в вашей трассировке стеки) был добавлен в 7

Monitoring and Management Interface for the Java™ Platform (6)

Monitoring and Management Interface for the Java™ Platform DRAFT ea-b120 (7)

+0

, возможно, она не была задокументирована, но находится в файлах jar. Еще в 5, что я вижу – Sean

Смежные вопросы