JNI-Problem beim erneuten Laden einer dll

Status
Nicht offen für weitere Antworten.

Apo

Bekanntes Mitglied
Hallo,

ich lade mithilfe von JNI eine dll. Es ist für ein Spiel gedacht, wo man seine KI selber schreiben darf (unter anderem auch mit c++ oder c# und nicht nur mit Java).

Beim ersten Mal klappt das auch wunderbar. Das Problem ist nun folgendes. Ich möchte mehrere KI's testen. Beim erneuten Laden einer neuen KI überschreibt er die alte nicht. Er läd die neue KI einfach nicht. (sehe ich an den Debugausgaben, die ich in der dll ausgebe). Der Pfad zum Laden der neuen dll ist aber jeweils der richtige, den lasse ich mir zu Testzwecken mit ausgeben.
Muss ich die geladene DLL erst "entladen"? Wenn ja wie? Oder wie gehe ich sonst vor?

Ich danke für eure Hilfe! ;)

hier ist der Code den ich verwende ...
Code:
public class ApoSoccerAIJNI {

	public void loadAI(String ai) {
		System.out.println(ai);
		System.load(ai);
	}
	
	public static native String getTeamName();
	
	//... hier dann die ganzen anderen Interfacemethoden
}
 

thE_29

Top Contributor
Sowas suche ich auch schon seit langem, aber das gibt es nicht in Java!

Es gibt nur eine UnloadAllLibrary (wenn man in den Java Sourcen sucht) aber die wird vom Ende der JVM aufgerufen. Explizit eine dll entladen gibts leider nicht...
 

Apo

Bekanntes Mitglied
Es muss nicht zwangsläufig ein "Entladen" sein. Geht das Überschreiben der dll nicht? Oder ist die Klasse, die einmal diesen Befehl ausgeführt hat, bis zum Ende es Programms damit "verdammt", die einmal geladene dll zu nutzen?
Das wäre sehr ***** schade und unschön.
 

Ebenius

Top Contributor
Das kann eigentlich nicht funktionieren. Die Klasse mit den native-Methoden ist vollständig geladen, wenn die Bibliothek geladen ist die die Methoden imeplementiert. Eine einmal geladene Klasse wird weder im Java noch mit JNI neu geladen. Das wäre äußerst seltsam, oder?

Zwei Lösungsansätze fallen mir ein:
  • Eine Bibliothek selbst anbieten die auf der einen Seite die JNI-Schnittstelle bedient und auf der anderen Seite zu anderen Bibliotheken delegiert. Das hätte den Vorteil, dass man nicht in allen anderen Bibliotheken den JNI-Krempel mitschleppen muss.
  • Die Klasse die die Bibliothek lädt in einem eigenen ClassLoader-Kontext laden, diesen nach Verwendung wieder zerstören. Das sollte aber getestet werden, keine Ahnung ob das funktioniert.

Ebenius
 

Apo

Bekanntes Mitglied
Der zweite Vorschlag klingt super! =)
Ich versuche ihn gleich mal umzusetzen.

Falls das nicht klappt, werde ich den 1 Ansatz nehmen. Aber da müsste ich erstmal schauen wie ich das genau handeln kann.

Auf jeden Fall erstmal Danke =)
 

Ebenius

Top Contributor
Ich hatte eigentlich vorgehabt den zweiten Vorschlag heimlich zu vergessen, weil der erste meines Erachtens schöner ist. ;)

In jedem Fall: Gutes Gelingen.

Ebenius
 

thE_29

Top Contributor
Nur verstehe ich nicht, wie ihm der erste Vorschlag was bringen soll?!

Du kapselst die JNI Ladung/Ausführung in eine extra Klasse? Trotzdem kann man nicht mehr laden.. Wozu also?
 

Ebenius

Top Contributor
Ich meinte das in etwa so: [Highlight=Java]public class ApoSoccerAIJNI {
static {
System.load("aistub");
}

/** Let the AI stub use the implementation library with the given name */
public static native void setAILibName(String libName);

/** Get the AI implementation library name from the AI stub */
public static native String getAILibName();

public static native String getTeamName();

//... hier dann die ganzen anderen Interfacemethoden
}[/Highlight]
Ebenius
 

Apo

Bekanntes Mitglied
Sorry, dass ich schon wieder eine Frage habe.

Ich kann zur Laufzeit Java-Klassen laden. Man wählt einfach mithilfe eines FileChoosers seine class-Datei aus und läd sie. Das funktioniert wunderbar. (Zum Glück =) )
Jetzt wollte ich den gleichen eigenen ClassLoader nehmen um die ApoSoccerJNIAI zu laden, aber ich bekomme folgenden Fehler: java.lang.ClassCastException: apoSoccer.entityForAI.ApoSoccerAIJNI cannot be cast to apoSoccer.entityForAI.ApoSoccerAIJNI
Das verwirrt mich. Da steht doch eigentlich, dass es wirklich die Klasse ist, in die ich casten möchte. Er findet die Klasse und kann sie Laden, bloss das casten vom Object in die Klasse funktioniert nicht ... Ich bin etwas verwirrt. Woran könnte das liegen? Ich danke euch =)

der wichtigste Code von der Classloaderklasse:
Code:
	public ApoSoccerAIJNI getAIDll() {
		ApoSoccerAIJNI ai = null;
		Class c;
		try {
			c = loadClass( this.name );
			Object o;
			try {
				o = c.newInstance();
				System.out.println(o.getClass());
				ai = (ApoSoccerAIJNI)o;
			} catch (InstantiationException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return ai;
	}
	
	@SuppressWarnings({ "unchecked", "deprecation" })
	public Class loadClass(String name) throws ClassNotFoundException {
		Class c;
		try {
			c = findLoadedClass(name);

			if (c == null) {
				String filename = name.replace('.', File.separatorChar)	+ ".class";
				try {
					byte data[] = loadClassData(filename);
					c = defineClass(data, 0, data.length);
					System.out.println("class = "+c.getName()+" ");
				} catch (IOException e) {
				} catch (NoClassDefFoundError e) {
				}
			}

			if (c == null) {
				try {
					c = findSystemClass(name);
				} catch (Exception e) {
				}
			}

			if (c == null) {
				throw new ClassNotFoundException(name);
			}

		} catch (Throwable ex) {
			throw new ClassNotFoundException(name);
		}

		return c;
	}

	private byte[] loadClassData(String filename) throws IOException {

		File f = new File(this.root, filename);
		
		int size = (int) f.length();
		
		byte buff[] = new byte[size];

		FileInputStream fis = new FileInputStream(f);
		DataInputStream dis = new DataInputStream(fis);

		dis.readFully(buff);

		dis.close();

		return buff;
	}
 

Ebenius

Top Contributor
Es sind zwei verschiedene Klassen, da sie in unterschiedlichen ClassLoader-Kontexten geladen wurden. Die Klassen werden vollkommen unabhängig voneinander initialisiert.

Ebenius
 

thE_29

Top Contributor
@Ebenius: Und was soll das bringen? Ich verstehe den Sinn dahinter nicht ganz... (also von deiner JNI Klasse da oben).
 

Apo

Bekanntes Mitglied
Nunja, wenn ich aber über den Parent von der ApoSoccerAIJNI-Klasse gehe, sagt er, er findet die Klasse nicht.
Darf ich (hoffentlich) ein letztes Mal fragen, wie ich vorgehen muss, um die gleiche Klasse zu erhalten bzw. das ich korrekt casten kann?
Ich danke =)
 

Ebenius

Top Contributor
@Ebenius: Und was soll das bringen? Ich verstehe den Sinn dahinter nicht ganz... (also von deiner JNI Klasse da oben).
Der Sinn ist, dass ich
  1. die austauschbare Implementierung nicht direkt an der Java-Klasse hängen habe
  2. mir den den JNI-Krempel in den einzelnen Implementierungen sparen kann und
  3. nicht das Problem habe, dass ich ständig meine Java-Klasse loswerden muss, um die Bibliothek neu laden zu können (falls das überhaupt funktioniert)

Nunja, wenn ich aber über den Parent von der ApoSoccerAIJNI-Klasse gehe, sagt er, er findet die Klasse nicht. Darf ich (hoffentlich) ein letztes Mal fragen, wie ich vorgehen muss, um die gleiche Klasse zu erhalten bzw. das ich korrekt casten kann?
Ich kann Dir dabei gar nicht weiter helfen. Mit eigenen ClassLoader-Implementationen habe ich vor über sieben Jahren mal kurz zu tun gehabt. Keine Ahnung wie das alles funktionierte. :)

Ebenius
 

Apo

Bekanntes Mitglied
So ich habe es nun mit ApoSoccerJNIAI.class.newInstance() versucht, aber da lande ich wieder beim alten Problem. Ich werde mich nun wohl oder übel mit dem ersten Vorschlag beschäftigen. Aber dieser sollte wirklich klappen (hoffe ich mal =) ).
Ich melde mich wieder, falls es a.) geklappt hat und/oder b.) ich noch Fragen habe. =)
Danke soweit auf jeden Fall. =)
 

thE_29

Top Contributor
@Ebenius: Jo, aber ich kapsel die JNI Ladung + Methoden sowieso immer in einer eigenen Klasse?! Was hat das also für Vorteile? Ich werde da nicht ganz schlau draus...
Und wie willst du da nochmals eine DLL Laden?! Die DLLs sind ja package spezifisch. Da kannste nicht in Klasse A.B.C ein Dll laden die für C.D.E gemacht wurde.
 

Ebenius

Top Contributor
@Ebenius: Jo, aber ich kapsel die JNI Ladung + Methoden sowieso immer in einer eigenen Klasse?! Was hat das also für Vorteile? Ich werde da nicht ganz schlau draus...
Und wie willst du da nochmals eine DLL Laden?! Die DLLs sind ja package spezifisch. Da kannste nicht in Klasse A.B.C ein Dll laden die für C.D.E gemacht wurde.
Häh? Was? Wie? Ich kann doch wohl in aistublib per C/C++ eine andere Bibliothek verwenden. Warum denn nicht?

Es gibt dann nur noch eine package-spezifische DLL. Die heißt aistublib (in meinem Beispiel). Diese macht nix anderes als andere Bibliotheken zu benutzen, die zu keinem Package gehören, weil sie mit Java gar nix mehr am Hut haben.

Ebenius
 
T

tuxedo

Gast
Scheint so als redet ihr gerade aneinander vorbei.

Wenn ich Ebenius richtig verstanden habe, dann besteht die (möglich) Lösung darin, von Java-Seite aus nur eine DLL zu laden, die sich dann um das laden und entladen der KI-DLLs kümmert. Somit wäre es nicht mehr aufgabe der JVM die KI-DLLs zu laden und entladen.

Oder hab ich nun auch etwas missverstanden?

- Alex
 
S

Spacerat

Gast
Da hilft wohl nur ein JNI-Basierender ClassLoader. Entspricht der Lösung 1 von Ebenius. In Java erstellt man eigentlich nur ein Interface (oder auch eine Abstrakte Klasse) (KI bzw. AI) mit allen Methoden die man dafür braucht. Auf der JNI-Seite bildet man dieses Interface nach und hat so schonmal alle Funktions- bzw. Methoden-Prototypen. Nun können beliebige KIs auf JNI-Seite gebastelt werden. Die DLL muss im Prinzip nur noch feststellen, mit was für Mitteln die KI-Klasse kompiliert wurde (z.B. C#, C++, Java, PHP) und die Methodenaufrufe dorthin delegieren. Laden und Entladen findet dann ebenfalls auf JNI-Seite statt. Wie die DLL an die Dateinamen der KI-Klasse kommt hat Ebenius ebenfalls schon oben erklärt. Hoffe das war einigermassen Verständlich... Ich und Erklärungen...
 

Ebenius

Top Contributor
tuxedo hat es so verstanden wie ich es gemeint habe und kann es besser beschreiben. Danke dafür.

Spacerat, das wird viel komplizierter als mein Vorschlag, deswegen würde ich davon abraten.

Ebenius
 
S

Spacerat

Gast
Apo hat gesagt.:
Es ist für ein Spiel gedacht, wo man seine KI selber schreiben darf (unter anderem auch mit c++ oder c# und nicht nur mit Java)
@Ebenius: Wenn er sowas vorhat, wird er wohl kaum drum herum kommen. Irgendwie muss er doch die Java-Seite auf die "unbestimmte" Seite abbilden. Natürlich müsste er dann auch für jede Sprache, die er unterstützen will, ebenfalls so ein Interface bauen. Wenn du einen einfacheren Weg kennst, würd' ich den gerne auch kennen.
@Edit: Ähm... Ich bemerke gerade, das "abstrakte Klasse" auf Javaseite gar nicht sein muss (bzw. darf). Es muss ein Native-Interface sein, also eine Klasse (möglicherweise sogar "final") deren Methoden durchweg "native" sind.
 
Zuletzt bearbeitet von einem Moderator:

thE_29

Top Contributor
Sag doch gleich, dass die erste DLL sich um die 2te DLL kümmern soll :D

Jo, das wäre eigentlich der beste Ansatz! Die erste DLL stellt alle Interface Methoden zur Verfügung und in dieser DLL kann/muss man dann einen Lademechanismus haben, welcher jenachdem eine DLL lädt oder eine andere (am besten sagt man einer Methode laded jetzt DLL 1, DLL 2, etc..).

Pluspunkt Ebenius ;) Aber das nächste mal einfach klar ausdrücken damits auch die Österreicher verstehen :D
 

Apo

Bekanntes Mitglied
Ebenius Vorschlag wird grad umgesetzt.
Es hat wirklich auch den Vorteil, dass die Leute sich nicht mit den JNI-spezifischen Sachen herumärgern müssen, sondern die Mittelsmann-dll kümmert sich nicht nur um das Ansprechen der jeweiligen KI, sondern kann mithilfe eines eigenen Interface bzw header Datei dafür sorgen, dass die KI wirklich nur in C++ und C# Code geschrieben wird.

Ich melde mich wieder, wenn es geklappt hat. (noch bin ich positiver Dinge) :D
 

thE_29

Top Contributor
@Apo: Hast du das was Ebenius wollte auch gleich verstanden oder bin ich der einzige mit der langen Leitung :D
 

Ebenius

Top Contributor
@Ebenius: Wenn er sowas vorhat, wird er wohl kaum drum herum kommen. Irgendwie muss er doch die Java-Seite auf die "unbestimmte" Seite abbilden. Natürlich müsste er dann auch für jede Sprache, die er unterstützen will, ebenfalls so ein Interface bauen. Wenn du einen einfacheren Weg kennst, würd' ich den gerne auch kennen.
Wie jetzt? Wenn er DLLs laden will, dann muss er natürlich nicht pro Sprache was neues bauen. Library ist Library; mit welcher Sprache diese erzeugt wurde ist dabei vollkommen wurscht. Was auch immer die "unbestimmte Seite" ist; die Bindung an die Implementierung macht dann der Stub (native Library per JNI eingebunden). Und natürlich muss nicht jede Methode native sein. Und die Klasse muss auch nicht final sein. Siehe bspw. java.io.FileSystem.

@Apo: Hast du das was Ebenius wollte auch gleich verstanden oder bin ich der einzige mit der langen Leitung :D
Spacerat scheint auch mit verlängertem Kabel zu arbeiten, aber ich weiß nicht, ob das an mir liegt.

Ebenius
 
S

Spacerat

Gast
Ähm... Die "unbestimmte Seite" sind X-Beliebige Programmiersprachen: Java erzeugt schon mal keine DLL, PHP und JavaScript da hat man Scripte, C++ da hat man eine DLL, C# keine Ahnung wohl auch 'ne DLL. Die DLL die nun von der Java-Anwendung gestartet wird muss das letztendlich unterscheiden können. Und um die Methoden dann an die geladene KI-Implementation weiter zu leiten wird halt noch dieses Interface benötigt. Ich kanns gerne aufzeichnen. Dauert 'ne Weile.
@Edit: Soooo. Hab's mal rasch aufgekritzelt, wie ich das meine.
 

Anhänge

  • Untitled-1.png
    Untitled-1.png
    54,2 KB · Aufrufe: 31
Zuletzt bearbeitet von einem Moderator:

thE_29

Top Contributor
Wir gehen aber davon aus, dass er verschiedene DLLs laden will und nicht verschiedene Sprachen ;)

Da ich ja keinem User zwingend vorraussetzen kann, dass er zB php.exe installiert hat. Macht man ne DLL raus (was in Windows mit den meisten nativen Sprachen geht) dann sieht das ganze anders aus (und funktioniert auch überall wenn es static gelinkt ist).
 
S

Spacerat

Gast
Ja... gut... dan lässt er halt die Sprachen, wofür möglicherweise externe Interpreter oder ähnliches benötigt werden weg. Dann entfällt lediglich die Dateitypeerkennung. Trotzdem muss er die DLLs gegen ein Interface linken oder nicht? Das sollte nur ein paar weiter Möglichkeiten aufzeigen.
 

Apo

Bekanntes Mitglied
Naja Java-Klassen kann er schon gut lesen. =)
Und da bei uns an der Uni viele andere Studienrichtungen wie Maschinenbau sich eher mit C++ beschäftigen als mit Java, wollte ich diese gerne noch mit ins Boot holen für den diesjährigen Programmierwettbewerb. Deshalb wollte ich "nur" erstmal die C-Sachen abdecken.
Ein weiterer Grund ist, da wir dieses Jahr auch Preise für externe Teilnehmer haben, wollte ich die Leute, die mit einer dll kommunizieren können, nicht ausschließen. Es können alle mitmachen. Auch ihr =)
Am Wochenende habe ich endlich wieder Zeit und kann mich darum kümmern und bekannt geben, ob das Projekt "Mittelsmann-dll" geklappt hat. =)
 

Apo

Bekanntes Mitglied
Wollte nur bescheid sagen, dass es mit der "Mittelsmann"-dll klappt. Außerdem ist noch ein Interface gebastelt worden, damit man sich nicht mit den JNI Sachen rumärgern muss. :D
Ich danke nochmal für die Idee mit der Mittelsmann-dll

Alles in allem kann nun endlich der Wettbewerb am 09.04.2009 losgehen. Ihr dürft gerne mitmachen und die feinen Preise mit abräumen. Ich darf als Leiter leider nicht mitmachen. :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
G Problem beim GUI Allgemeine Java-Themen 9
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
D Selenium WebDriver HtmlUnitDriver Problem beim Automatisieren Allgemeine Java-Themen 1
F Problem beim Speichern eines Attachments Allgemeine Java-Themen 3
M Problem beim Starten der Anwendung Allgemeine Java-Themen 3
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
GUI-Programmer JNI - Problem beim Erstellen der .dll Allgemeine Java-Themen 9
D Problem mit Referenzen beim Serialisieren Allgemeine Java-Themen 3
R Problem beim vCard Manipulieren Allgemeine Java-Themen 2
Rudolf Problem beim Visitorpattern Allgemeine Java-Themen 2
J Problem beim Auslesen einer Datei vom Server Allgemeine Java-Themen 4
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
U Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang: Allgemeine Java-Themen 3
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
N Problem beim lesen einer File in JAR-File Allgemeine Java-Themen 3
N iText Problem beim verlinken anderer PDFs Allgemeine Java-Themen 2
M Problem beim Drucken von PDFs Allgemeine Java-Themen 3
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
I Problem beim Ausführen von Shell Commandos Allgemeine Java-Themen 3
O Problem beim Ausgeben von Arrays Allgemeine Java-Themen 9
L Problem beim animieren von Bildern in Applet Allgemeine Java-Themen 23
C Problem beim einlesen bestimmter Seiten Allgemeine Java-Themen 5
S Problem beim Drucken auf Netzwerkdrucker unter Linux Allgemeine Java-Themen 9
S Problem beim Anlegen eines JDialogs! Allgemeine Java-Themen 4
A Problem mit ShutdownHook beim schließen Allgemeine Java-Themen 7
S Problem beim Löschen des Inhalts des Fensters Allgemeine Java-Themen 4
A Problem beim serialisieren/deserialisieren einer ArrayList Allgemeine Java-Themen 3
M Problem beim Umrechnen von Pixel in cm. Allgemeine Java-Themen 6
M Problem beim ausführen von Batchdateien Allgemeine Java-Themen 21
Escorter Problem beim starten von Batchfiles Allgemeine Java-Themen 4
A Problem beim Starten der H2-Datenbank Allgemeine Java-Themen 4
L WindowsTrayIcon in Java 1.4 - Problem beim ausführen der JAR Allgemeine Java-Themen 2
E Problem beim Anlegen einer Datei Allgemeine Java-Themen 4
E Problem beim Dateien kodieren ("Byte = Byte +1") Allgemeine Java-Themen 3
G Problem beim starten von eclipse product Allgemeine Java-Themen 2
M Problem beim Erstellen eines Objektes Allgemeine Java-Themen 3
M Problem beim laden von vielen Bildern Allgemeine Java-Themen 16
S Problem beim Einlesen von byte-werten aus datei Allgemeine Java-Themen 2
H Problem beim Malen auf ein Panel Allgemeine Java-Themen 2
G iText: Problem beim Drucken von AcroFormen Allgemeine Java-Themen 2
E Problem beim fertigen Programm die Hintergrundfarbe ändern Allgemeine Java-Themen 8
karambara Sonderzeichen-Problem beim Lesen und Speichern von Dateien Allgemeine Java-Themen 6
R Problem beim Datentransfer Allgemeine Java-Themen 19
C Problem beim Umstieg von Java1.4 auf 1.5 Allgemeine Java-Themen 5
K javax.comm Problem beim starten aus .jar heraus Allgemeine Java-Themen 3
S Problem beim Bearbeiten von Java-Dateien unter Linux Allgemeine Java-Themen 3
S Hab ein Problem! Bei Dame! Beim Umranden! Allgemeine Java-Themen 2
G Problem beim speichern von Dateien Allgemeine Java-Themen 8
M Problem mit PageFormat beim Drucken Allgemeine Java-Themen 2
Streeber Problem beim Kompilieren und Ausführen Allgemeine Java-Themen 20
E Problem beim Compilieren Allgemeine Java-Themen 6
O JNI Problem beim kompilieren Allgemeine Java-Themen 2
M Codepage Problem (Vertauscht Zeichen beim Lesen aus Datei) Allgemeine Java-Themen 3
P Problem beim "spliten" eine Textdatei Allgemeine Java-Themen 3
F Problem beim Drucken mit javax.print Allgemeine Java-Themen 2
Z Problem beim Aufruf eines Listener? Allgemeine Java-Themen 4
bernd Problem beim kopieren! Allgemeine Java-Themen 2
B problem beim erstellen einer ausführbaren jar-datei Allgemeine Java-Themen 5
A Problem beim Aufruf von javac Allgemeine Java-Themen 7
J JFrame Problem beim schließen Allgemeine Java-Themen 2
S Problem beim Zugriff auf Internetseiten Allgemeine Java-Themen 4
R Problem beim speichern von eigenem objekt Allgemeine Java-Themen 6
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben