-
START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: okhttp3.RequestBody
Hallo Forum,
eine Frage bzgl genannter Fehlermeldung.
Im QSH kann ich mein Programm ohne weiteres mit Javac Main_Service.java -cp 'Pfad/Der/Jar-Files/okhttp390.jar:/weitere/jar/files.jar:' kompilieren.
Rufe ich das Programm dann mittels Java auf (ob mit oder ohne Classpath) wird mir immer die Fehlermeldung
Code:
Ausnahmebedingung in Thread "main"# START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: okhttp3.RequestBody
Caused by: java.lang.ClassNotFoundException: okhttp3.RequestBody
at java.net.URLClassLoader.findClass(URLClassLoader.java:610)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:925)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
at java.lang.ClassLoader.loadClass(ClassLoader.java:853)
angezeigt.
Der classpath ist eingetragen. Es handelt sich bei der .jarFile um eine externe Jar, in einem Package.
Wieso kann ich es kompilieren, ohne Fehler, aber nicht ausführen?
-
Die Complierung macht nur einen Syntaxcheck und erstellt den Zwischencode.
Die Referenzen werden erst zur Laufzeit aufgelöst.
Vielleicht fehlt dir in der Quelle ja eine Import-Direktive ohne die die Klasse nur mit ihrem vollständigen Namen verwendet werden kann.
Bevor du Java auf die ibm i schiebst, empfehle ich dir, das über Eclipse erst zu testen.
Da hast du mehr Möglichkeiten.
Falls du die JT400.Jar dann benötigst, kannst du die auch lokal kopieren.
-
Ich habe das mit dem RDI entwickelt und so auch ausprobiert. Da funktionierte alles einwandfrei. Auch mit dem jt400.
Eigentlich sind die Import-Direktiven vorhanden.
Code:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/* SQL */
import java.sql.*;
import java.util.ArrayList;
-
Dann kann es nur noch einen Syntaxfehler im Classpath geben.
Wie sieht dein Aufruf genau aus?
-
Code:
java Main_Service -cp
':/usr/local/Java/jar_files/okhttp3_9_0.jar:/usr/local/Java/jar_files/okio-1.14.0.jar:/usr/local/Java/jar_files/jt400.jar:/usr
/local/Java/jar_files/jt400.jar:/usr/local/Java/jar_files/java-json.jar'
Ausnahmebedingung in Thread "main"# START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: okhttp3.RequestBody
Caused by: java.lang.ClassNotFoundException: okhttp3.RequestBody
at java.net.URLClassLoader.findClass(URLClassLoader.java:610)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:925)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
at java.lang.ClassLoader.loadClass(ClassLoader.java:853)
ich rufe den Classpath bisher immer bei jedem Start mit auf. Auch wenn ich den Classpath über ein CL befülle, tritt die selbe Meldung auf.
-
Der Doppelpunkt am Anfang könnte u.U. ein Problem darstellen. Der Doppelpunkt dient zur Trennung der einzelnen Pfade.
Desweiteren ist das IFS der IBM i casesensitive (im Gegensatz zu Windows). Achte also bei den Dateien (bei den Verzeichnissen ist es u.U. nicht relevant) auf die genaue Schreibweise.
-
Auch ohne Doppelpunkt am Anfang tritt der Fehler auf. Die Dateinamen sind alle casesensitive aufgelistet.
Ich habe mal ausprobiert ob wenigstens eine externe Jar (java-json.jar) genommen wird und das ist der Fall. Alle anderen machen Probleme. Liegt es an der Quellenzuordnung der einzelnen jar-Files? Im RDI kann ich mir nur die Quellen der json-File anzeigen lassen. Die anderen jedoch nicht. Nehme ich irgendeine andere jar-File, funktioniert es nicht.
Ich habe dann die Klassen und Java Files manuell hinzugefügt und das funktioniert natürlich auch. Nur die jt400 macht dabei Probleme.
-
Da fällt mir leider dann auch nichts mehr ein. Ich mache da zuwenig mit Java und bisher lief alles, wass ich mit Eclipse (nicht RDi) entwickelt habe.
Hier kann ich nur raten.
Eine Variante könnte noch eine inkompatible Java-Version auf der IBM i sein.
Prüfe mal mit "Jave -version".
-
Code:
java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 8.0.5.25 - pap3280sr5fp25-20181030_01(SR5 FP25))
IBM J9 VM (build 2.9, JRE 1.8.0 OS/400 ppc-32-Bit 20181029_400846 (JIT enabled, AOT enabled)
OpenJ9 - c5c78da
OMR - 3d5ac33
IBM - 8c1bdc2)
JCL - 20181022_01 based on Oracle jdk8u191-b26
-
Java 8, das sieht zumindest gut aus. Aber eine Erklärung habe ich nicht.
-
Danke trotzdem für die Hilfe. Ich probiere es weiter aus und trage meine Erkenntnisse ein.
-
Auch wenn schon länger her ...
Der Aufruf von Java ist: java [-options] class [args...]
Somit hast du -cp ... als args übergeben und nicht als options.
java -cp /usr/local/Java/jar_files/okhttp3_9_0.jar:/usr/local/Java/jar_files/okio-1.14.0.jar:/usr/local/Java/jar_files/jt400.jar:/usr/local/Java/jar_files/jt400.jar:/usr/local/Java/jar_files/java-json.jar Main_Service
müsste klappen, sofern alle Pfadangaben stimmen.
Similar Threads
-
By TR1 in forum NEWSboard Java
Antworten: 0
Letzter Beitrag: 09-10-14, 14:20
-
By geo_works in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 09-11-13, 12:37
-
By SL in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 02-06-03, 09:29
-
By Bosch in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 23-09-02, 16:06
-
By Michael Saxer in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-10-01, 07:25
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks