2015-11-12 2 views
0

Я имею следующую структуру папок:Compile JAVA через JAVAC с классами

Моя рабочую область/Java и "проект", как это:

- de 
    - vfh 
    - gp1 
     - bib 
     - Console.class 
     - Console.java 
     - app 
     - MyFile.java 
     - MyFile.class 

Так что, когда я делаю:

cd ~/Desktop/java 
javac -classpath "." de/vfh/gp1/app/MyFile.java 
cd ~/Desktop/java/de/vfg/app/ 
java MyFile 

команда Javac работает хорошо, но команда Java не удается, и я получаю:

java.lang.NoClassDefFoundError: de/vfh/gp1/bib/Console 

Любые идеи о том, как должен выглядеть мой classpath?

+1

Что такое упаковка? Вам нужно скомпилировать и запустить в корневой структуре пакета для "." Работать. – duffymo

ответ

2

вы должны запустить его из корня вашего проекта, а также использовать полное имя (с пакетом) класса:

cd ~/Desktop/java/ 
java de.vfg.app.MyFile 

BTW - я не вижу компиляции Console, это, очевидно, требуется

+0

@ user3205343 Обратите внимание на точки вместо косых черт в имени полного класса. – Thomas

+0

@ Не нужно явно компилировать Консоль; если MyFile ссылается на Консоль и Console.class не существует, javac будет автоматически компилировать Console.java. –

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