2012-03-30 22 views
0

У меня есть простая java-программа с именем MainController.java. Wehn Я пытаюсь скомпилировать его из каталога, где я сохранил файл MainController.java, написав javac MAinController.java, он правильно компилирует и генерирует файл MainController.class в том же каталоге. Теперь 1), когда я пытаюсь запустить файл, написав «Java MainController», это дает мнеНастройка classpth в Ubuntu

Exception in thread "main" java.lang.NoClassDefFoundError: MainController (wrong name: cased/test/MainController) 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    Could not find the main class: MainController. Program will exit. 
    [email protected]:~/workspace/Test/src/cased/test$ 

Я знаю, что есть некоторые проблемы с моими классами. Как установить? Я хочу, чтобы при запуске команды «java MainController» из каталога, где есть файл Maincontroller.class, он должен запустить его. Я не хочу передавать параметр -cp в java-команду каждый раз, когда хочу ее запустить.

Для Jvm информации я побежал "Java -version" и отображает следующее:

ява версия "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.10.6) (6b22-1.10.6-0ubuntu1) OpenJDK Server VM (сборка 20.0-b11, смешанный режим)

Пожалуйста, расскажите, как установить переменную classpath и что она должна установить для выше jvm.

Заранее спасибо.

ответ

0

Вам необходимо добавить имя пакета при выполнении MainController. Из вашего ~workspace/Test/src каталога, выполните следующие действия:

javac cased/test/MainController.java 
java cased.test.MainController 
0

Если вы не хотите установить -cp пометку каждый раз, вы можете использовать переменную CLASSPATH среды. , но вы, вероятно, захотите установить эту переменную до вашего общего каталога jars (например, каталог lib и src в вашем проекте).

Во всяком случае, это кажется, что проблема заключается в том, что вам необходимо установить полный класс Name- пакет + класс, , например для класса MAinController, который находится в org.examples пакете вы должны использовать: JAVAC org.examples. MAinController из главного каталога вашего проекта

+0

, и если я хочу указать среду classpath variale, как это сделать? Я имею в виду, мог бы сказать мне синтаксис? и где писать? – Ragini

+0

export CLASSPATH = "/ home/user/project/lib:/home/usr/project/src" – shem

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