2011-02-10 3 views
0

со ссылкой на этот пост Receiving "wrong name" NoClassDefFoundError when executing a Java program from the command-lineОпять ошибка «неправильное имя» при выполнении Java программы

Я не понимаю, как решить проблему

На самом деле в моем исходном коде Java строки там»s:

package es_2011;

Когда я скомпилирую программу через JCreator, все работает отлично. Создает папку с именем es_2011, куда класть файлы .class. Также выполняемая операция выполняется гладко, программа работает нормально.

Теперь я хотел бы использовать только командную строку. Так что я разместил свой файл Java в каталоге, где javac.exe есть, но всякий раз, когда я пытаюсь скомпилировать я получаю ту же ошибку

Команда, которую я использую: Javac ProgAudioJ.java

Путь (где Javac. exe is is: C: \ Program files \ Java \ jdk1.6.0_22 \ bin

Кто-то хочет помочь мне понять, точно сказать, что я должен делать? спасибо большое ... MAX

ответ

0

MAX, если класс определяет, что он находится внутри пакета es_2011, то он должен быть в папке с тем же именем.

Так что в вашем случае, поставить ProgAudioJ.java в es_2011 папку, а затем запустить JAVAC es_2011 \ ProgAudioJ.java

последнего, чтобы запустить его, необходимо в командной

java es_2011.ProgAudioJ 
0

Вы должны добавить javac.exe в вашем path .Edit переменного пути и добавьте путь к бен JDK в

затем поместить Java файл в директории с именем es_2011, как декларация пакета es_2011 затем скомпилировать

c:\es_2011\javac YourJava.java 

и теперь вернуться к C:

c:\java es_2001.Yourjava 
0

После прочтения вашего друга сообщение: «Receiving "wrong name" NoClassDefFoundError when executing a Java program from the command-line» Я предполагаю, что вы идете в каталог es_2011 где файл ProgAudioJ.class находится и запустить

java ProgAudioJ 

из этого папка.

instaend вы должны пойти к вышеупомянутому (cd ..) папку и запустите

java es_2011.ProgAudioJ 
1

В настройки используется для выглядит следующим образом (под окнами)

C: \ classDir -> является проект C: \ classDir \ testpackage -> единственный используемый пакет (пакет "testpackage") C: \ classDir \ testpackage \ Main.class -> класс с основным методом внутри (важно: это .class и не .java)

Main.class выглядит следующим образом:

package testpackage; 

public class Main { 

    public static void main(String[] args) { 
     System.out.println("Program started! ;-)"); 
    } 

} 

пойти с вашей командной строке:

c:\classDir> java testpackage.Main 

Результат:

Program started! ;-) 

В соответствии с вашими проблемами, что он начинается в вашей IDE но не с консоли: - проверено, действительно ли вы используете путь к файлам .class? - с помощью консоли перейдите в каталог файлов .class, а не проект (например, в Eclipse это каталог bin - введите полное имя класса (включая пакеты, разделенные на. -> например, testpackage.Main

Больше информации можно найти по адресу: http://www.oracle.com/technetwork/java/compile-136656.html

Надеется, что это помогло

0

каждого пакет Java соответствует папке в файловой системе Таким образом, объявление пакета, такие как com.stackoverflow будет означать, что классы источника должны быть. папка ./com/stackoverflow. Как правило, весь проект будет иметь parate src папка, содержащая com/stackoverflow.

При компиляции классов Java, что вам не нужно поместить исходные файлы в том же каталоге, javac.exe, однако Вы должны убедиться, что javac.exe в ваших операционных систем PATH переменных. Это говорит операционной системе, где она должна искать исполняемые файлы при запуске команды, на машине * nix это обычно будет /usr/bin или просто /bin, но на машине Windows исполняемые файлы обычно живут в собственных каталогах приложений, то есть C:\Program Files\something. Предполагая, что вы правильно установили JDK, javac.exe уже должен быть в PATH, вы можете проверить это, открыв командную строку и просто запустив javac (точно так же). Если вы получаете некоторый результат, тогда все хорошо, система знает, где найти javac.exe.

Далее вам нужно будет перейти в папку проекта и ввести javac -d . src/com/stackoverflow/MainSO.java уведомление, которое запускается из папки проекта. Это создаст папку с именем com в корне вашего проекта и поместим скомпилированные классы в com/stackoverflow. Флаг -d сообщает javac, где положить скомпилированные классы, если вы оставите это, скомпилированные классы будут там, где находятся источники.

Затем, если вы хотите запустить классы, которые вы вводите java com.stackoverflow.MainSO (нет .класс).Крайне важно, чтобы эта команда выполнялась в каталоге, который содержит корень иерархии классов (то есть папка com, содержащая скомпилированные классы). Вы можете указать другие места для java, чтобы искать классы, указав путь класса к команде java с флагом -cp. По умолчанию путь к классу будет содержать каталог, в котором была запущена команда java. Если у вашего проекта есть зависимости внешних файлов .jar, например, вам нужно будет предоставить каждый из них (с полным пути к файлу) в пути к классам (это относится к компилятор). IDE делают это автоматически для вас.

Надеюсь, что это поможет.

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