Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Не находится класс


Автор: knopka 13.1.2009, 16:18
Знаю, что тему уже мусолили неоднократно, тем не менее решения для себя не нашёл.Всё под винду. 
Посему изложу суть проблемы: не находит класс при запуске программы
Код

[worker@localhost javaapplication3]$ javac Main.java 
[worker@localhost javaapplication3]$ java Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main
Caused by: java.lang.ClassNotFoundException: Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Main. Program will exit.

пишу в Linux поэтому решение типа java -cp . Main естественно не катит.

предвидя ответы
  1. типа Main должен быть static, скажу, что всё как положено. В NetBeans  работает 
  2. про CLASSPATH пример из моего bash_profile
Код

#Директория JAVA SDK
JDK_HOME=/home/worker/jdk1.6.0_05
JAVA_HOME=$JDK_HOME/jre
J2RE_HOME=$JDK_HOME/jre

export JDK_HOME
export JAVA_HOME
export J2RE_HOME

#Директория JDBC драйвера
CLASSPATH=/home/worker/jdk1.6.0_05/lib/postgresql-8.3-604.jdbc3.jar
export CLASSPATH


Что делаю не так? Или хоть скажите куда копать?


Автор: Samotnik 13.1.2009, 16:34
в консоле
java -version
и вывод сюда

Автор: knopka 13.1.2009, 16:40
извиняюсь не думал, что это нужно

Код

[worker@localhost javaapplication3]$ java -version
java version "1.6.0_0"
OpenJDK  Runtime Environment (build 1.6.0_0-b11)
OpenJDK Client VM (build 1.6.0_0-b11, mixed mode)
[worker@localhost javaapplication3]$ 


Автор: LSD 13.1.2009, 20:12
Цитата(knopka @  13.1.2009,  16:18 Найти цитируемый пост)
пишу в Linux поэтому решение типа java -cp . Main естественно не катит.

Это ещё почему? Тебе надо добавить текущую директорию в CLASSPATH
Код

CLASSPATH=/home/worker/jdk1.6.0_05/lib/postgresql-8.3-604.jdbc3.jar:.

Автор: Samotnik 13.1.2009, 20:14
LSD  ответил )

Автор: knopka 14.1.2009, 17:04
Цитата

добавить текущую директорию в CLASSPATH

то есть вот так ?
Код

CLASSPATH=/home/worker/......./javaapplication3



или можно глобально ?
Код

CLASSPATH=/home/worker/


и как тогда исправить ?

Код

JDK_HOME

Автор: LSD 15.1.2009, 12:53
Цитата(knopka @  14.1.2009,  17:04 Найти цитируемый пост)
то есть вот так ?

Т.е. вот так:
Код

CLASSPATH=/home/worker/jdk1.6.0_05/lib/postgresql-8.3-604.jdbc3.jar:.


Почему ты не можешь добавить точку в CLASSPATH?

Добавлено через 1 минуту и 21 секунду
Отличие от Window будет только в том, что разделить путей не ; а : и все (ну и сами пути конечно другие).

Автор: knopka 19.1.2009, 16:17
точку поставил, только результат тот же

Автор: LSD 19.1.2009, 16:29
http://base.vingrad.ru/view/122-Kak-nachat-rabotat-s-JAVA читал? (особенно замечание по работе с пакетами)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)