2010-02-10 2 views
0

Я запускаю java-программу в командной строке. Я установил «C: \ j2sdk1.4.2_09 \ bin» в переменной PATH System.Then я могу скомпилировать и запустить программу. Но поскольку мне нужно установить mysql-коннектор, я установил это в «C: \ mysql-connector-java-5.1.10 \ mysql-connector-java-5.1.5-bin.jar " Переменная CLASSPATH, но теперь я могу скомпилировать программу, поскольку я запускаю программу, которую я получаю" Исключение в основной строке потока. lang.NoClassFoundDefError». Как это? Может ли кто-нибудь об этом подумать?путаница в CLASSPATH и PATH

ответ

5

Непонятно, что вы здесь задаете. Вы говорите, что вы изменили свой CLASSPATH, и теперь класс не может быть найден?

Следует иметь в виду, что CLASSPATH по умолчанию не включает текущий каталог. Вы должны добавить его (.), если вы хотите его в CLASSPATH, например .:

set CLASSPATH=.;C:\mysql-connector-java-5.1.10\mysql-connector-java-5.1.5-bin.jar 

(Обратите внимание, я положил .; в начале этого.)

PATH и CLASSPATH не имеют никакого отношения. PATH сообщает Windows, где можно найти исполняемые программы (и неявно включать текущий каталог), когда вы запускаете их, не указывая на явный путь. CLASSPATH сообщает время выполнения Java, где он может загружать классы.

Извините, если это полностью вне базы; если да, не могли бы вы уточнить свой вопрос?

+0

Можно добавить путь и путь к классам как? – Tanveer

0

Согласитесь с ответом выше, потому что я сделал это миллион раз сам. Исключение, которое вы получаете, почти определенно связано с вашим классом, не включая «.». который говорит Java, чтобы включить текущий каталог в его смерть для классов.

Кажется, что интуитивно понятно, что Java не будет автоматически включать текущий каталог в свой поиск, но в любое время, когда вы вручную переопределяете путь к классам, вы должны включить это.

Причина? Если вы не укажете путь к классу, то используется значение по умолчанию, которое включает в себя «.» И прозрачное для вас.

0

Прежде чем ответить на ваш вопрос, просто попробуйте этот простой вопрос: Почему нам нужны PATH и CLASSPATH?

Ответ:

1) ПУТЬ: Вам нужно установить переменную PATH для компиляции исходного кода Java, создавать JAVA файлов классов и операционную систему для загрузки классов во время выполнения.

2) CLASSPATH: Classpath в Java есть путь к директории или списка каталога, который используется загрузчиков классов, чтобы найти и класс нагрузки в Java program.This используется JVM, а не ОС.

Изменить PATH переменной (Windows System переменная среды), так что он указывает на бен директории, которая содержит все ехе, например: Java, JAVAC и т.д. В моем случае это выглядит так: ; C: \ Program Files \ Java \ jre7 \ bin.

Classpath может быть указан с помощью переменной CLASSPATH среды, которая является вариантом регистронезависима, -cp или -classpath командной строки или атрибут Class-Path в manifest.mf файла внутри JAR-файл в Java.

Для CLASSPATH в деталях Пожалуйста, обратитесь по ссылке «http://javarevisited.blogspot.in/2011/01/how-classpath-work-in-java.html»

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