2012-02-18 3 views
1

Я просто обновлен до последней JavaJava 1.7.0_03 Ошибка: Не удалось найти или загрузить основной класс

> java -version 
java version "1.7.0_03" 
Java(TM) SE Runtime Environment (build 1.7.0_03-b05) 
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode) 
> javac -version 
javac 1.7.0_03 

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

public class Tester { 
    public static void main(String[] args) { 
     System.out.println("in main"); 
    } 
} 

Я собирал его в командной строке, а затем попытаться выполнить его:

> javac Tester.java 
> java Tester 
Error: Could not find or load main class Tester 

Является ли это ошибка? Странно, у меня нет проблем с выполнением программы с помощью Eclipse.

+0

ли 'Tester' класс в пакете по умолчанию? И является ли файл 'Tester.class' в текущем каталоге после компиляции? – millimoose

+0

@Inerdial, класс _Tester_ точно такой, как показано здесь, без ссылки на пакет. и да, файл _Tester.class_ находится в том же каталоге выполнения компиляции и _java_ iteself. – MrRoth

+2

Придется проверить, точно такая же программа работает для меня с той же версией. Единственное, что я могу проверить, - это то, что classpath включает '.' –

ответ

2

Является ли ваша переменная окружения CLASSPATH установленной? Когда я

export CLASSPATH=/tmp 
java Tester 

Я получаю NoClassDefFoundError, хотя и не точно такое же сообщение об ошибке вы процитировали.

+0

«classpath» не имеет ничего общего с этой проблемой. – MrRoth

+0

С другой стороны, я получаю то же сообщение об ошибке с той же Java-версией в Windows, когда у меня нет '.' В пути к классам. –

+2

@MrRoth: Это так. Если вы установили 'CLASSPATH' и не включили' .' или другую ссылку, которая косвенно включает '.', вы получите эту точную ошибку. Попробуйте 'set CLASSPATH =' в окне консоли, и если он работает тогда, это была ваша проблема. (Я знаю, что вы используете Windows, поскольку номер сборки отличается от Linux/Solaris) – mihi

2

Запускать файлы jar в режиме консоли. java -jar filename.jar

0

У меня была такая же ошибка при попытке запустить Tomcat, и я понял, что это потому, что я использовал 64-разрядную версию Tomcat в 32-битной системе. Как только я попробовал 32-битную версию, она сработала.

0

если вы хотите запустить программу в текущем рабочем каталоге, где находится ваш класс.

java дает три варианта.

первый вариант

Java -cp Tester

Второй вариант для текущего рабочего каталога

Java -cp. Тестер

Третий вариант переменной CLASSPATH экспорта

экспорт CLASSPATH = $ CLASSPATH :. (это лучший один, если ваши изменения каталога) или

экспорт CLASSPATH = $ PWD

или

экспорт CLASSPATH =

после этого вы должны Sorce в Bashrc или bashprofile.

0

просто установить в системе классов переменных:

classpath=. 
Смежные вопросы