Я выполнения Java бинарного от одного из моих классов, и ClassNotFoundException брошено:Я не понимаю, почему это ClassNotFoundException выкинут
Results of executing:/usr/bin/java -classpath "/home/geo" Geoline
Error stream:
Exception in thread "main" java.lang.NoClassDefFoundError: Geoline
Caused by: java.lang.ClassNotFoundException: Geoline
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Geoline. Program will exit.
Output stream:
Класс геоЛайн расположен в/дома/гео/Geoline.java. Дело в том, что независимо от того, где в файловой системе я нахожусь, если я выполняю ту же самую команду вручную, класс выполняется. Почему не происходит то же самое, когда двоичный файл выполняется с помощью Runtime.getRuntime(). Exec?
редактировать: вот вывод, сгенерированный с многословной флагом на: pastie link редактировать: вот содержимое файла:
public class Geoline {
public static void main(String[] args) {
System.out.println("blabla");
}
}
Почему вы цитируете файл .java? Мне не нравится спрашивать «глупый» вопрос, но вы скомпилировали его в файл .class? И является ли каталог, в которой путь /home/geo/Geoline.class живет в CLASSPATH? – duffymo
Да, он скомпилирован. Компиляция происходит до запуска. Разве не -classpath «/ home/geo» загружает его в CLASSPATH? – Geo
Имеет ли класс пакет? Если да, это каталог, в котором находится корень пакета, который должен находиться в CLASSPATH. Если нет, добавьте его. Классы без пакетов тривиальны. – duffymo