# Projekt mit HSQL-Datenbank exportieren



## Dogano88 (1. Dez 2012)

Hallo Freunde,

ich habe eine kleine Anwendung in Java mit einer HSQL-Datenbank geschrieben. Die Anwendung läuft super, solang ich sie in Eclipse laufen lasse. Sobald ich sie aber exportiere und auf einen anderen Rechner lade (egal ob Mac OS oder Windows) habe ich das Problem, dass die Datenbank nicht gefunden werden kann.

Ich habe die externe Bibliothek für HSQL (hsqldb-2.2.9) schon in das Projekt eingebunden. Zur Sicherheit habe ich den Ordner mit den Bibliotheken UND der Datenbank in den workspace gezogen, was aber auch nicht zur gewünschten Lösung verholfen hat.

In dieser Zeile baue ich eine Verbindung zur Datenbank auf:

```
public HSQLConnection() {
		try {
			Class.forName("org.hsqldb.jdbcDriver");
			try {
				conn = DriverManager
						.getConnection(
								"jdbc:hsqldb:file:Datenbank/Database; shutdown=true",
								"root", "test");
			} catch (SQLException e) {
				String[] input = {
						"Es konnte keine Verbindung aufgebaut werden. Bitte kontaktieren" };
                                      System.out.println(input);
				try {
					conn.close();
				} catch (SQLException e1) {

				}
			}
		} catch (ClassNotFoundException e) {
                     	...
			return;
		}
	}
```

Zur Info: Ich entwickele die Anwendung unter Ubuntu und möchte sie am Ende für einen Freund auf einem Windows-Rechner laufen lassen. Daher muss die Datenbank "irgendiwe" in das Projekt miteingebunden werden.

Die Frage geht jetzt an euch: Wie mach ich das am dümmsten?

Liebe Grüße und Danke,

Dogano


----------



## Dogano88 (1. Dez 2012)

UPDATE: Ich habe jetzt gelesen dass man die Datenbank in den workspace des Java-Projekts kopieren muss. Dies habe ich getan. Die Sache ist jetzt aber, dass ich bei der Pfadangabe folgendes tun muss:


```
try {
			Class.forName("org.hsqldb.jdbcDriver");
			try {
				conn = DriverManager
						.getConnection(
								"jdbc:hsqldb:file:~/workspace/DataPool/Datenbank; shutdown=true",
								"root", "dogan");
```

Ich habe es zwar noch nicht getestet, aber da ich ja die "~" angebe, gehe ich stark davon aus, dass er sich den Pfad lokal suchen wird und nicht im Projektordner. Da er diesen Pfad aber auf einem Windows-Rechner nicht finden wird, wird es wieder Probleme geben. Wie kann ich das lösen?


----------



## turtle (1. Dez 2012)

Ich schlage vor, dass Du es mal mit einem relativen Pfad versucht.

```
jdbc:hsqldb:file:../DataPool/Datenbank;
```
Die Angabe sollte relativ zum Startprogramm sein. Ist damit aber unabhängig von der Umgebung, Windows/Unix und ob die Datenbank in Eclipse im src-Ordner oder parallel dazu liegt.Musst Du vielleicht mit verschiedenen Angaben probieren und ich würde es innerhalb von Eclipse versuchen zu starten.


----------



## Dogano88 (1. Dez 2012)

Hallo,

Danke für deine Antwort! In der Entwicklungsumgebung unter Ubuntu hat es geklappt! Ich versuche es gleich mit anderen Rechnern!


----------



## Dogano88 (1. Dez 2012)

UPDATE: in der Entwicklungsumgebung funktioniert es, wie gesagt. Auf einem anderen Rechner aber nicht. 
Ich habe in meinem workspace in dem Projekt "DataPool" neben den Standardverzeichnissen noch folgende: Datenbank.tmp, Datenbank.log, Datenbank.properties, Datenbank.script

wobei die letzten 3 Dateien sind und keine Verzeichnisse.

Ich habe über Project->Properties->Add Class Folder den Ordner Datenbank.tmp hinzugefügt. Muss ich mit den restlichen 3 Dateien auch was machen?


----------



## Dogano88 (1. Dez 2012)

Ok, habe das Problem lösen können. Ich muss bei exportieren des Projekts die drei Datenbank-files manuell kopieren. So kann die Anwendung auch auf anderen Rechnern laufen.


----------

