I have put the .java
files in a folder, e.g. /opt/program/
and a .jar
file in a lib folder inside the main folder, e.g. /opt/program/lib/jsoup-1.10.3.jar
. Then I ran these commands
javac -classpath lib/*jar *.java # compile is OK
java TheFrame # program runs
In one of the java files, e.g. Tester.java
, I have used an object defined in jsoup-1.10.3.jar
. Something like this
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Tester {
Document doc;
public Tester() { }
public void doConnect(String name) throws Exception
{
doc = Jsoup.connect("http://somewhere.com").get();
...
}
}
During the runtime, when it comes to Jsoup.connect
, I get this error
java.lang.NoClassDefFoundError
UPDATE:
As suggested, I have to include the jar file in the java command as well. I did that but still get the same error
$ ls lib/
jsoup-1.10.3.jar
$ /opt/jdk1.8.0_131/bin/javac -classpath lib/*.jar *.java
$ /opt/jdk1.8.0_131/bin/java -classpath .:lib/*.jar TheFrame
phase_1
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at javax.swing.SwingWorker.get(SwingWorker.java:602)
at TheFrame$10.propertyChange(TheFrame.java:481)
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
....
Caused by: java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at Tester.connectForTranscript(Tester.java:24)
at ExcelFile.analyzeSeq(ExcelFile.java:706)
at TheFrame$9.doInBackground(TheFrame.java:448)
....
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
....
Caused by: java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at Tester.doConnect(Tester.java:24)
...
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 10 more
How can I fix that?