![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Morgen! Also ich schreibe derzeit ein Programm zur Verwaltung von Videofilmen. Da ich jetzt schon daran denken muss, dass das ganze später in ein .jar File soll, lade ich Bilder etc. entsprechend. Für meine Kopier-Methode ( die eine schon existierende Datenbank kopieren soll ) brauche ich nun den den Programmpfad, indem das Programm ausgeführt wird, damit die Datenbank, mit der das Programm arbeiten soll auch im gleichen Verzeichnis liegt. Klar, man könnte den User vorher auswählen lasse, wohin er die Datei speichern will, aber das ist nicht Sinn der Sache. Es soll halt immer im Stammverzeichnis liegen, indem das .jar Archiv liegt. Gibts da irgendwelche Bilbiotheken, die ich noch nicht gefunden hab, mit denen man diesen Pfad abfragen kann? Ich wäre euch sehr dankbar für einen Tip!! Gruß, VipViper2000 |
|
| | Nach oben #2 |
| Chefkoch-Mod Registriert seit: 30.05.2004
Beiträge: 433
|
Vielleicht habe ich Dich nicht verstanden, aber Code: ./Pics
__________________ Denk mal darüber nach... Lars ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen. www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de |
| | |
| | Nach oben #3 |
| Benutzer Registriert seit: 15.11.2005
Beiträge: 75
|
"./Pics" ist ein relativer Pfad, der vom Arbeitsverzeichnis der Anwendung ausgeht. Das muss nicht notwendigerweise das Installationsverzeichnis sein. Wenn man wirklich wissen will, wo das Jar-File installiert ist, aus dem der gerade laufende Bytecode geladen wurde, kann man über java.lang.Class.getResource( String name) gehen. Bsp.: Code: public static URL getPath( Class cls) {
String cn = cls.getName();
//--- strip off package part
int dIdx = cn.lastIndexOf( ".");
if ( dIdx > -1) {
cn = cn.substring( dIdx+1, cn.length());
}
//--- add extension
cn = cn + ".class";
return cls.getResource( cn);
}
Wenn die Klassen aus einem Jar-File von der lokalen Platte stammen, erhält man eine URL nach dem Muster jar:file://c:/programme/myapp/lib/myjar.jar!/com/xyz/Test.class Wenn die Klassen nicht ein Jar-File verpackt wurden, sondern direkt geladen werden, sieht die URL so aus: file://c:/programme/myapp/lib/com/xyz/Test.class Daraus sollte man auf das Installationsverzeichnis schließen können. |
| | |
| | Nach oben #4 |
| Gast
Beiträge: n/a
|
Moin! Also jein c:\Programme\Cinemax\cinemax.jar Das Programm wird gestartet und eine "alte" Datenbank wird soll ausgewählt werden, z.B. aus: d:\Toller Ordner\Noch ein Ordner\usw\datenbank.mdb Nun will ich diese Datenbank kopieren und die Kopie in das Verzeichnis c:\Programme\Cinemax\ speichern. Dazu müsste ich halt den derzeitigen Pfad wissen, in dem das jar-File liegt. Ich hab gestern selbst viel zusammenbasteln wollen und auch eine getPath Methode geschrieben, die über den ClassLoader geht Aber ich werd eure Tips nochmal berücksichtigen und ich hoffen, dass mit dem kleinen Beispiel oben klar geworden ist, was ich machen will. |
|
| | Nach oben #5 |
| Benutzer Registriert seit: 15.11.2005
Beiträge: 75
|
Ich würde für das Verzeichnis zunächst ein System-Property abfragen. Wenn das nicht gesetzt ist, wird das Verzechnis über den ClassLoader ermittelt. Code: DataPath = System.getProperty( "com.viper.cinemax.DataPath");
if ( DataPath == null) {
//--- Pfad ist nicht explizit gesetzt -> Position des Jar-Files verwenden
DataPath = getJarFileDirectory();
}
|
| | |
| | Nach oben #6 |
| Gast
Beiträge: n/a
|
Hi Leute! DANKE für eure Hilfe - Sym, du hast mir weitergeholfen. So einfach kann es sein, das mit "./" hatte ich ganz vergessen. Ich hab jetzt ein Code: "." +File.separator() Thx, VipViper2000 |
|
| | Nach oben #7 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 575
|
Nur so als kleine Anregung: Lass den User doch die Datenbank mit einem FileChooser selber wählen (bzw. das Verzeichnis dafür). Auf die Weise wäre das ganze sehr Komfortabel, weil man auch mehrere Datenbanken verwenden könnte. Dann könnte User1 seine Videos in seiner Datenbank eintragen und User2 in seiner eigenen. Gruß Sparrow |
| | |
| | Nach oben #8 |
| Gast
Beiträge: n/a
|
@Sparrow Es geht dabei nicht um neue Datenbanken - das geht sowieso. Also ich kann beliebig viele Datenbanken anlegen und auch einfach neue Laden. Mein "Feature" bezog sich darauf, dass ich schon sehr lange mit einem VideoArchivierungs Programm arbeite und eine dementsprechend große Datenbank habe, die ich natürlich nicht neu machen will. Aber da mein Programm Felder hat, die das andere nicht hat und umgekehrt, "konvertiere" ich die Tabelle. Dabei geht der User halt oben in die Menüleiste -> Tools -> Konvertieren und wählt dann per FileChooser die alte Datenbank. Und genau an dieser Stelle hatte ich nun mein Problem - weil wenn der User hier wählen könnte, wo die Datenbank gespeichert werden soll, gäbe es irgendwann ein heilloses Durcheinander und ich finde auch, dass meine VideoDatenbank auch in dem Verzeichnis liegen sollte - aber das ist vielleicht Geschmackssache |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Mehrere Zeilen auslesen. | Jan | Datenbanken | 17 | 27.06.2006 16:49 |
| mit PHP ein Bild auslesen | Jann Hendrik | PHP-Programmierung | 8 | 09.05.2006 09:12 |
| [PHP] Fremde Webseiten auslesen | WarrenFaith | Tutorials | 3 | 14.03.2006 15:59 |
| Datenbank auslesen und Daten in JTable überführen | Lautsprecher | Datenbanken | 5 | 20.10.2005 15:34 |
| Check Constraint auslesen | galaxy | PHP-Programmierung | 1 | 03.06.2005 17:35 |