2014-01-22 4 views
0

Я новичок в Java, но не в ООП у меня есть некоторый опыт в C и C++ и PHP5 Для краткости я есть «привет мир» программа для тестированияJava Выдает исключение в потоке главного java.lang.NoClassDefFoundError

 package com.tutorial.helloworld; 
    public class helloWorld { 

    public static void main(String[] args) { 
       System.out.print("hello world!!!\n"); 
     } 

} 

когда я компилирую в консоли с JAVAC компиляции без ошибок, но при запуске Java HelloWorld говорит

Exception in thread "main" java.lang.NoClassDefFoundError: helloWorld (wrong name: 
com/tutorial/helloworld/helloWorld) and much more code 

в затмение перспективе нормально. Если я удалю оператор пакета и скомпилировать вручную, он будет работать нормально. но если я сохраняю оператор пакета, выдает эту ошибку. Должен ли я помещать файл класса в подкаталог com/tutorial/helloworld и это нормально, как мне работать с терминала и из какого каталога?

Я нахожусь на mac os x, и я использую, чтобы набирать код в редакции, компилировать и запускать с консоли , чем работать на льду. Я не могу заставить eclipse работать на C++ (C++ ide), и из-за этого я стараюсь держаться на консоли со всеми языками, которые я знаю или изучаю.

+1

Можете ли вы показать точную команду, используемую для ее запуска? Вероятно, у вас есть что-то с вашим классом (или не было указано имя пакета helloWorld). –

+0

Вы находитесь в '/bin', когда вы запускаете java? – Pietu1998

+1

Кроме того, в Java принято считать, что имена классов капитализируются (поэтому HelloWorld, а не helloWorld). –

ответ

2

В Java имя класса состоит из имени пакета + «имя» класса. Поэтому писать

java com.tutorial.helloworld.helloWorld 

Вы также должны знать, где ваши .class файлы. Вы должны находиться в каталоге, содержащем каталог com, чтобы он работал, где файл .class находится внутри каталога com/tutorial/helloworld.

+0

Или добавьте расположение каталога, содержащего 'com/tutorial/helloworld/helloWorld.class' путь к classpath. – Pshemo

+0

Я понимаю, спасибо, ребята, так что вам нужна структура каталога пакета и выполняйте команду выше – Nazakthul

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