Установка classpth в Ubuntu - PullRequest
       23

Установка classpth в Ubuntu

0 голосов
/ 30 марта 2012

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

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.
    ragini@ragini-ThinkPad-W500:~/workspace/Test/src/cased/test$ 

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

Для получения информации о jvm я запустил "java -version", и он отображает следующее:

java version "1.6.0_22 "Среда выполнения OpenJDK (IcedTea6 1.10.6) (6b22-1.10.6-0ubuntu1) Виртуальная машина сервера OpenJDK (сборка 20.0-b11, смешанный режим)

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

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

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

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

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

0 голосов
/ 30 марта 2012

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

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