Запуск Java-программы из командной строки - PullRequest
1 голос
/ 27 октября 2010

Я пытаюсь запустить программу Java из командной строки. Я попытался выполнить шаги, упомянутые здесь . Но когда я пытаюсь запустить javac Hello.java, выдает ошибку, что такой программы нет. Я попытался дать java Hello.java и получил ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: Hello/java
Caused by: java.lang.ClassNotFoundException: Hello.java
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Hello.java.  Program will exit.

В чем здесь проблема. Как я могу это сделать?

РЕДАКТИРОВАТЬ: у меня есть много классов в моем файле кода, Hello.java. Это вызовет какие-либо проблемы?

Ответы [ 5 ]

6 голосов
/ 27 октября 2010

Сначала вы должны скомпилировать код Java с помощью

 javac Hello.java

Затем запустите его

 java Hello

В обоих случаях убедитесь, что ваш classpath установлен правильно ...

5 голосов
/ 27 октября 2010

Для запуска программы вам необходимо:

java Hello

, то есть java, за которым следует имя класса без расширения .

3 голосов
/ 27 октября 2010

Во-первых, Java требует максимум один публичный класс на файл. Нет

public class this {
}

public class that {
}

Вы можете иметь

class this {
   class that {
   }
}

если нужно.

РЕДАКТИРОВАТЬ или в файле this.java:

public class this {
}

class that {
}

javac не будет в папке jre. Вы установили JDK? это не приходит по умолчанию на многих компьютерах. это часто в "C: \ Program Files \ Java \ jdk1.6.0_05 \ bin \ javac.exe" или в похожем пути.

1 голос
/ 27 октября 2010

Если в пакете содержится Hello.java, вам необходимо создать соответствующую структуру каталогов. То есть если Hello.java содержится в пакете com.stackoverflow, необходимо создать папки com/stackoverflow и поместить в эту папку Hello.java. Из корневой папки вы должны запустить

java com.stackoverflow.Hello

1 голос
/ 27 октября 2010

Как указано в ответе других, сначала вы должны запустить приложение, используя java Hello, а не java Hello.java

Во-вторых, вы должны проверить, правильно ли установлена ​​CLASSPATH. Кажется, что ваша переменная не установлена ​​или не интегрирует текущий каталог, т.е. .

Итак, запустите:

javac -classpath . Hello.java
java -classpath Hello

или

set CLASSPATH=.
javac Hello.java
java Hello

Конечно, определение CLASSPATH в качестве пользовательской / системной переменной в вашей системе Windows - лучшее решение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...