См. http://scottizu.wordpress.com/2013/08/28/fixing-the-exception-in-thread-main-java-lang-noclassdeffounderror-in-eclipse/.
Это полная форма команд Java, которые можно запустить из командной строки Windows:
"C:\Program Files\Java\jdk1.6.0_18\bin\javac.exe" -classpath "C:\Users\Scott\workspace\myproject" com\mycompany\myapp\HelloWorld.java
"C:\Program Files\Java\jdk1.6.0_18\bin\java.exe" -classpath "C:\Users\Scott\workspace\myproject" com.mycompany.myapp.HelloWorld
- Эти команды можно запускать из любого каталога, то есть вам не обязательно находиться в каталоге, где находится файл HelloWorld.java.
- Первая строка компилирует ваш файл HelloWorld.java, создавая файл HelloWorld.class.
- Вторая строка запускает файл HelloWorld.class.
- -classpath указывает java, где искать указанный файл в каждой команде
- Компилятор Java (javac.exe) ожидает расположение файла Java относительно пути к классу (то есть файл находится в C: \ Users \ Scott \ workspace \ myproject \ com \ mycompany \ myapp \ HelloWorld.java )
- Java (java.exe) ожидает пакет (т. Е. Com.mycompany.myapp) и класс (HelloWorld) относительно пути к классу (т. Е. Файл находится в C: \ Users \ Scott \ workspace \ myproject \ com \ MyCompany \ MyApp \ HelloWorld.class)
Обратите внимание, что в конце пути к классам нет косой черты. Команды javac.exe ожидают, что файл оканчивается на «.java». Команда java.exe ожидает полное имя класса и не заканчивается на «.class».
Есть несколько способов упростить эти команды:
- Вам не нужно указывать полный путь к java.exe. Добавить Java в путь Windows («Пуск» -> «sysdm.cpl-> Вкладка« Дополнительно »->« Переменные среды »->« Выбрать путь »->« Изменить -> Добавить »; C: \ Program Files \ Java \ jdk1.6.0_18 \ bin \") , Или вы можете добавить JAVA_HOME и создать эту переменную среды.
Вам не нужно вводить весь путь к классам (т. Е. Вы можете просто использовать -classpath "."). Введите каталог, в котором вы будете работать:
cd "C: \ Users \ Scott \ workspace \ myproject \"
Вы можете использовать пакет по умолчанию (поместите каталог файлов HelloWorld.java в свой рабочий каталог и не используйте директиву пакета Java)
Если вы сделаете эти изменения, вы запустите что-то вроде этого (и, возможно, сможете пропустить -classpath "."):
cd "C:\Users\Scott\workspace\myproject\"
javac -classpath "." HelloWorld.java
java -classpath "." HelloWorld