java.net.UnkownHostException: null bei jar-File

Status
Nicht offen für weitere Antworten.

Alex_winf01

Top Contributor
Ich habe ein Jar-File vorliegen, in denen meine notwendigen Jar-Files, der Ordner org und meine Mainfest.MF liegt.

Wenn ich jetzt das Jar-File öffne wird korrekterweise meine Login.class aufgerufen. In dieser Datei baue ich eine Verbindung zur DB auf:

Code:
connection = DriverManager.getConnection("jdbc:h2:tcp:localhost/test", "sa", "");

Nun bekomme ich beim Anmelden eine
Code:
java.net.UnknownHostException: null

Wenn ich meine Login mit einer start.bat aufrufe oder aus meinem Editor heraus bekomme ich diese Fehlermeldung nicht. Wer kann mir da helfen?

Ach ja: die URL passt natürlich. Das hab ich als erstes geprüft und die DB besteht natürlich auch.
 

HoaX

Top Contributor
Alex_winf01 hat gesagt.:
Code:
connection = DriverManager.getConnection("jdbc:h2:tcp:localhost/test", "sa", "");
...
Ach ja: die URL passt natürlich. Das hab ich als erstes geprüft und die DB besteht natürlich auch.

falsch. wie du der doku entnehmen kannst muss die url folgendes format haben: jdbc:h2:tcp://<server>[:<port>]/<databaseName>

ich bin mir sicher wenn du das bei dir änderst wird es laufen. wobei ich es verwunderlich finde dass es deiner aussage nach mal funkioniert und mal nicht ...
 

Alex_winf01

Top Contributor
Also über meinen Editor lief das ganze. Ich konnte allerdings die DB auch über die Weboberfläche starten. Es handelt sich hierbei um zwei unterschiedliche DB's, die unglücklicherweise gleich heissen. Jetzt sind zwar die tabels futsch, aber da schreib ich mir ne kleine Klasse, wo ich dann CREATE TABLE mache.

Danke für Deine schnelle und sehr kompetente Antwort.
 

Alex_winf01

Top Contributor
@ HoaX

Jetzt habe ich folgendes Problem:

Ich habe ein Jar-File erstellt. Solange ich dieses Jar-File innerhalb meines Projektordners vom JCreator starte, funktioniert die Anbindung zur Datenbank und ich kann die Daten lesen, schreiben, löschen.

Lege ich das Jar-File irgendwo anders auf die Festplatte, kann er die Daten aus der Datenbank nicht lesen. Ich bekomme dann nur die Fehlermeldung:
Tabelle XYZ nicht gefunden.

Woran kann das jetzt wieder liegen?

Die connection sieht jetzt wie folgt aus:

Code:
 connection = DriverManager.getConnection("jdbc:h2:tcp//localhost/test", "sa", "");
 

Alex_winf01

Top Contributor
Wenn ich jetzt in dem anderen Verzeichnis auch CREATE TABLE mache, dann klappt es.

Daraus habe ich jetzt folgendes Verständnisproblem:

Angenommen, ich lege jetzt jedem Anwender dieses JAR-File mit meiner Applikation hin, dann hat ja jeder Anwender eine eigene DB bei sich liegen. Das will ich ja nicht. Die DB liegt auf dem Server (also auf einem anderen Rechner) und der Anwender meldet sich auf dieser DB mit meinem JAR-File an.

Hab ich da einen Denkfehler?
 

Alex_winf01

Top Contributor
Habs jetzt geschafft, in dem ich den ganzen Pfad angegeben habe, wo die DB liegt.

Jetzt habe ich noch folgende Verständnisfrage:

Angenommen, die DB liegt unter D:\tcp\localhost.

Dann sieht das im Code wie folgt aus:

Code:
connection = DriverManager.getConnection("jdbc:h2:D:/tcp//localhost/test", "sa", "");

Jetzt weiss ich aber nicht, wo Kunde A seine DB hinlegt oder wo Kunde B seine DB hinlegt. Ich habe ein kleines Konfigurations-GUI geschrieben, in der ich also den Pfad abfrage und in eine .dat reinschreibe. In meiner Login-Klasse für den einzelnen Anwender liegt aber im jar-File. Wenn ich jetzt die connection-String zusammenbastel, bekomme ich doch mit der Datei .dat in Konflikt, da die ja außerhalb des jar-Files liegt.

Wer kann mir da helfen?
 

HoaX

Top Contributor
durch deine ursprungsurl dachte ich du wolltest auf eine zentrale datenbank zugreifen?!

HoaX hat gesagt.:
wie du der doku entnehmen kannst muss die url folgendes format haben: jdbc:h2:tcp://<server>[:<port>]/<databaseName>
das ist für eine url die zu einem zentralen server zeigt. alle anderen formate findest du in der gelungenen doku. du hast wieder einen schreibfehler eingebaut in deiner ...
 

Alex_winf01

Top Contributor
@ HoaX

Ja, ich will das in einer zentralen Datenbank haben. Die Datenbank liegt auf localhost. Mein Problem jetzt:

Wenn ich sage
Code:
jdbc:h2:tcp://localhost/test

findet er die Datenbank solange ich mich in meinem Projektordner befinde. Lege ich das JAR-File auf D:/irgendein_Ordner, kann er zwar eine Verbindung aufbauen, findet aber keine Tabellen, die ich angelegt habe. Was muss ich da machen? :(
 

HoaX

Top Contributor
eigentlich sollte das gehn. außer du startest den server in der selben anwendung. dann erstellt die natürlich die datenbank relativ zum aktuellen pfad. und der hat sich ja geändert.
 

Alex_winf01

Top Contributor
@ HoaX

Wenn ich jetzt
Code:
 jdbc:h2:tcp://localhost/test
mache und lege das jar-File und D:\irgendein_Ordner, legt er den Ordner tcp\localhost an. Dort werden dann alle db-Files angelegt. Dann fehlen ihm natürlich sämtliche Tabellen.

Mal angenommen, H2 ist unter c:\Programme\H2 installiert und die zentrale Datenbank liegt im Unterverzeichnis bin. Wenn ich dann wie folgt sage:



Code:
String pfad = "C:/Programme/H2/bin";
connection = DriverManager.getConnection("jdbc:h2:" + pfad + "/tcp//localhost/test", "sa", "");

Das funktioniert dann. Im Verzeichnis C:/Programme/H2/bin liegt dann noch ein Ordner tcp, darin wiederum ein Unterordner localhost. Und da liegen alle db-Daten. :(
 

Alex_winf01

Top Contributor
Also in der Dokumentation steht folgendes für das Starten aus der Comandozeile:

java org.h2.tools.Server

Leider funzt das nicht, weil er die Klasse nicht findet. Muss ich da in einem bestimmten Verzeichnis sein?

Das das nicht funktioniert hat, habe ich mir eine kleine Java-Klasse geschrieben, die ich vor Start des jar-Files starte:

Code:
import org.h2.tools.Server;
import java.awt.*;
import javax.swing.*;
import java.sql.*;

public class Server_starten
{
    
    public static void main(String [] args)
    {
    	try
    	{
    		// start the TCP Server
			Server server = Server.createTcpServer(new String[]{"-tcp//localhost/", "true"}).start();
    	}
    	catch(SQLException e)
		{
			JOptionPane.showMessageDialog(null, "Der Server konnte nicht gestartet werden: " + e,
			"DB-Fehler", JOptionPane.ERROR_MESSAGE);
		}
    }
    
    
}

So funktioniert das auch nicht. Wie würdest Du das machen?
 

Alex_winf01

Top Contributor
Den Server hab ich jetzt starten können. Aber das Problem bleibt trotzdem. Wenn ich das jar-File auf D:\ lege, wird immer noch ein Ordner tcp angelegt und die Anwendung kann die Tabellen nicht finden auf die ich zugreife (klar auch, wenn die Datenbank unter C:\Programme\H2\bin\tcp liegt und nicht unter D:\tcp.) :(
 

HoaX

Top Contributor
wenn er da verzeichnisse anlegt ist deine url in client falsch. die dürfen nur von der anwendung angelegt werden wo server ist.
 

Alex_winf01

Top Contributor
@ HoaX

Ich habe die Datenbank wie folgt zunächst installiert:

C:/Programme/H2/bin

Um den Server zu starten gehe ich wie folgt vor:

1) cmd aufrufen
2) in c:\Programme\H2\bin\ wechseln
3) Befehl ausführen:
java - cp h2.jar org.h2.tools.Server

Dann wird einmal die Kommandozeile gestartet und einmal die Weboberfläche. In der Weboberfläche steht oben in der Leiste

Dann im Login-Fenster steht unter JDBC URL

jdbc:h2:tcp://localhost/test

Was mache ich da falsch?
 
G

Guest

Gast
Man sollte den Punkt auch an der richtigen Stelle setzen:

Statt
Code:
connection = DriverManager.getConnection("jdbc:h2:tcp//localhost/test", "sa", "");
sollte man auch
Code:
connection = DriverManager.getConnection("jdbc:h2:tcp//localhost/test", "sa", "");[quote] schreiben :oops:  :roll: [/quote]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
KonradN Java 18 Allgemeine Java-Themen 8
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
O Newton Algorithmus Java Allgemeine Java-Themen 1
P Java Quellen finden Allgemeine Java-Themen 3
M Java Analyse/ SWOT-Analyse Allgemeine Java-Themen 13
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
E Java .exe Datei mit args starten Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben