2014-10-22 2 views
-1

Im пытается выполнить простой код Java (я уже скомпилирован без проблем), но это дает мне следующую ошибку:Java Ошибка exectuing

C: \ Users \ Alejandro \ Desktop> Java HelloWorld.java Ошибка: не удалось найти или загрузить основной класс.

Код следующий:

public class HelloWorld{ 

    public static void main(String[] args){ 

     System.out.println("Hello world!"); 

    } 
} 

-I установили переменную PATH правильно. -I удалил переменную CLASSPATH. -У меня есть оба файла (.java и .class) на моем рабочем столе.

+0

вы проверили печатанием java' в командной строке? –

+0

@SanKrish да, он действительно работает. –

+0

Компиляция, подобная 'javac HelloWorld.java', и должна выполняться как это' java HelloWorld' –

ответ

2

Вы указываете имя исходного файла . Это не то, что вы предоставляете команде java - вы указываете имя класса .

java HelloWorld 

Это предполагает, что HelloWorld.class находится где-то на пути к классам, который по умолчанию будет «текущий каталог».

Если у вас есть пакет, например.

package foo; 

public class HelloWorld { 
    ... 
} 

Тогда вы хотели бы поставить HelloWorld.java в директории под названием foo и скомпилировать и запустить из корневого каталога:

> javac foo\HelloWorld.java 
> java foo.HelloWorld 

Обратите внимание, как теперь полное имя класса foo.HelloWorld, не foo\HelloWorld ,

+0

О, черт возьми, я очень глуп, спасибо, теперь он работает! :) –

+0

, что означало бы, что HelloWorld имеет декларацию пакета, не так ли? –

+0

@AmanuelNega: Что это значит? Код в вопросе не содержит объявления пакета, но я показал пример, который * имеет * объявление пакета, чтобы избежать проблем в строке. –

0

При запуске скомпилированного файла вы должны использовать только имя класса. Скомпилированный файл будет иметь расширение .class, но вы не должны добавлять расширение. Просто используйте имя класса.

изменение

c:\Users\alejandro\Desktop> java HelloWorld.java 

в

c:\Users\alejandro\Desktop> java HelloWorld 
Смежные вопросы