2013-03-14 3 views
1

У меня есть класс, который использует Java3D, который успешно компилируется, хотя при попытке запустить его он говорит: Исключение в потоке «main» java.lang.NoClassDefFoundError: javax/СМИ/J3D/Canvas3D,Java3D - Некоторые классы не найдены, но classpath установлен правильно

с следующей трассировки стека:

 at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
     at java.lang.Class.getMethod0(Unknown Source) 
     at java.lang.Class.getMethod(Unknown Source) 
     at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Canvas3D 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     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) 

Материала Я уже пробовал:

  1. Я даже не смог его скомпилировать, пока не скопировал java-файлы Java3D в/jre/lib/ext /.

  2. У меня есть последняя Java, Java3D, и я использую Notepad ++, и я попытался переустановить Java3D.

  3. Я правильно установил путь к траектории/путь.

  4. В коде отсутствуют ошибки.

  5. Я могу запускать обычные Java-приложения, которые я создал.

  6. Я пробовал использовать свойство classpath при запуске приложения (java -classpath blahblah ApplicationName).

  7. Я проверил внутри банки и классы (в том числе Canvas3D), безусловно, там.

+0

, которые используют u e, используя? Eclipse ?? – Biswajit

ответ

0

Не все, что вы говорите, верно.

Если классы находятся в баночках, и ЕСЛИ вы правильно установили путь к классу, ТОГДА вы не получите это сообщение.

Я подозреваю, что у вас есть путь сборки, запутанный с помощью пути к классам (который в основном связан с временем выполнения, где путь сборки связан с временем компиляции). Не зная больше деталей среды выполнения, трудно быть более конкретным.

Меня всегда озадачивает, как кто-то с проблемой, которую они не могут решить, так уверен, что все эти вещи настроены «правильно»: как вы знаете? Разве не проблема некоторых доказательств обратного, по крайней мере, достаточно для небольшого сомнения?

+0

Я поместил местоположение ящиков Java3D (несколько местоположений) в переменные среды pathpath и path, и я довольно уверен, что они верны. Что конкретно вам нужно знать о моей среде выполнения? Я бы дал вам какие-либо подробности, которые у меня есть, но я не уверен, что вам нужно. Biswajit, я использовал Eclipse, хотя теперь я его не использовал. Я использую Notepad ++ вместо этого, потому что он не делает этого досадного автозаполнения. Кроме того, спасибо Бенджамину Грюнбауму за то, что он сделал мой пост лучше. – Hsenfow

+0

(вздох) У нас мало информации, чтобы узнать, что спросить. Вы упоминаете блокнот, так что вы используете интерфейс командной строки? В этом случае нам нужна ОС, каталог по умолчанию, местоположения файлов источника и класса, значение пути к классам и строки, которые выходят с помощью NoClassDefError вверху. Короче говоря, нам нужно знать окружающую среду, в которой вы работаете, и что происходит, подробно, как это происходит, а не ваша интерпретация ее с утверждениями, что все это правильно. – arcy

+0

Извините, если я оказался высокомерным, я просто считал, что сделал все, что требовалось. Да, я использую командную строку на Windows 7 64Bit Home Premium.Я не уверен, что вы подразумеваете под «каталогом по умолчанию», хотя я предполагаю, что вы имеете в виду место, где установлена ​​Java, которая является «C: \ program files (x86) \ java \", Java 7, Java3D и Там установлены JRE. У меня есть файл класса и файл Java в папке на моем рабочем столе с копией CMD, которую я использую, потому что это проще. «Линии, которые выходят», встречаются выше в моем вопросе. Я буду комментировать снова, поскольку у меня нет персонажей. – Hsenfow

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