Hallo,
ich habe ein Java-Programm, das die Library Jsoup verwendet, um Informationen von einer Website abzurufen. Wenn ich das Programm in Eclipse kompiliere funktioniert es problemlos. Allerdings funktioniert es nicht richtig, wenn ich es über das Terminal mit javac und jar versuche. Ich muss die Kompilierung mit Kommandozeilenbefehlen machen, weil ich diese für ein Installationsskript brauche.
Der Programmordner hat folgende Inhalte:
[CODE lang="java" title="src/manifest"]Main-Class: gqthres
Bundle-ClassPath: ., jsoup-1.13.1.jar[/CODE]
Zum Kompilieren gehe ich in src und führe dort folgende Befehle aus:
Hierbei kommen keine Fehlermeldungen und ich kann die Datei problemlos mit "java -jar gqthres.jar" starten. Sobald ich dort aber eine Funktion verwende, die Jsoup benötigt, bekomme ich diesen Stacktrace:
Den Quellcode, also gqthres.java, gibt es hier:
Weiß jemand, was ich da falsch mache?
ich habe ein Java-Programm, das die Library Jsoup verwendet, um Informationen von einer Website abzurufen. Wenn ich das Programm in Eclipse kompiliere funktioniert es problemlos. Allerdings funktioniert es nicht richtig, wenn ich es über das Terminal mit javac und jar versuche. Ich muss die Kompilierung mit Kommandozeilenbefehlen machen, weil ich diese für ein Installationsskript brauche.
Der Programmordner hat folgende Inhalte:
- bin
- gqthres.class
- gqthres$1.class
- gqthres$2.class
- gqthres$3.class
- gqthres$4.class
- src
- gqthres.java
- manifest
- jsoup-1.13.1.jar
- bin
- .classpath
- .project
[CODE lang="java" title="src/manifest"]Main-Class: gqthres
Bundle-ClassPath: ., jsoup-1.13.1.jar[/CODE]
Zum Kompilieren gehe ich in src und führe dort folgende Befehle aus:
Java:
javac -cp jsoup-1.13.1.jar gqthres.java
jar cfm gqthres.jar manifest *.class
Hierbei kommen keine Fehlermeldungen und ich kann die Datei problemlos mit "java -jar gqthres.jar" starten. Sobald ich dort aber eine Funktion verwende, die Jsoup benötigt, bekomme ich diesen Stacktrace:
Java:
Exception in thread "AWT-EventQueue-1" java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at gqthres.GetCoordinates(gqthres.java:53)
at gqthres$1.actionPerformed(gqthres.java:379)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:508)
at javax.swing.JTextField.postActionEvent(JTextField.java:721)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:836)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1668)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2929)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
at java.awt.Component.processEvent(Component.java:6316)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:834)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1102)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:973)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:799)
at java.awt.Component.dispatchEventImpl(Component.java:4760)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at org.GNOME.Accessibility.AtkWrapper$6.dispatchEvent(AtkWrapper.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 42 more
Den Quellcode, also gqthres.java, gibt es hier:
gqthres/src/gqthres.java at main · BaumGuard/gqthres
Resolver for locators, callsigns and coordinates. Contribute to BaumGuard/gqthres development by creating an account on GitHub.
github.com
Weiß jemand, was ich da falsch mache?