Я не могу запустить мою программу java в linux/ubuntu.
Я работаю над этой проблемой целый день и не могу найти никакого решения. Я написал небольшую программу java, используя Eclipse на моей машине с Windows 7, и она работает нормально. Вот мой код:NoClassDefFoundError при запуске java-программы в linux/ubuntu
//start of java program jsonReader
package jsonReader;
//imports needed to run program
import java.io.FileNotFoundException;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.*;
Для того, чтобы импорт org.codehause.jackson .. работать, мне пришлось вручную включить в мой проект этот файл фляги: ДЖЕКСОНА-все-1.9.11.jar
//class jsonReader
public class jsonReader {
//start of main
public static void main (String[] args) throws FileNotFoundException {
Остальная часть моей программы, которая работает отлично.
Следующий шаг к моему проекту - запустить его на командной строке Ubuntu. Я сделал экспорт на Eclipses: Файл -> Экспорт -> Общие -> Архивный файл -> и создал Zip-файл.
Этот zip-файл был перенесен в мой linux/ubuntu enviornment. Оттуда я распаковал файл. Это структура каталогов:
в домашнем каталоге у меня есть:
/jsonReader --> has the following directories in it:
-/bin/jsonReader/jsonReader.class
-/lib/jackson-all-1.9.11.jar
-/src/jsonReader/jsonReader.java
-.classpath (file); and a few other files.
В/jsonReader/SRC/jsonReader я запускаю эту команду: JAVAC jsonReader.java -> Я получаю эту ошибку:
jsonReader.java:6: package org.codehaus.jackson.map does not exist
import org.codehaus.jackson.map.*;
^
jsonReader.java:7: package org.codehaus.jackson does not exist
import org.codehaus.jackson.*;
^
Затем я запускаю эту команду:
javac -classpath /jsonReader/lib/jackson-all-1.9.11.jar jsonReader.java
я не получаю никаких ошибок. Эта команда создает файл jsonReader.class в каталоге/src/jsonReader. Я пытаюсь запустить файл с помощью следующей команды:
java jsonReader
Я получаю эту ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: jsonReader (wrong name: jsonReader/jsonReader)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: jsonReader. Program will exit.
Это полное сообщение об ошибке, что я получаю, при запуске этого в командной строке.
Я не уверен, почему я получаю эту ошибку и как ее решить.
Здравствуйте, я попробовал запустить эту команду, но это все еще не сработало. Я запустил его из/jsonReader/src/jsonReader (там есть файл .class) И я также запускал его из каталога/jsonReader/src. Оба дали мне ту же ошибку. NoClassDefFound. – user2809181
@ user2809181 Если 'jsonReader.class' находится в' src/jsonReader', т.е. 'src/jsonReader/jsonReader.class', вы должны запустить его из' src'. –
Я все еще получаю ту же ошибку из src. = ( – user2809181