VM kommt vom rechten Weg ab..
-
Hallo,
In meinem Prg verwende ich ein File Ojbect das auf den Programm Ordner zeigen soll. Ich initialisiere es mitFile fileHome = new File("");
Dieser Ordner enthaelt bspw auch .xml Datein fuer Einstellungen, etc.
Gut, wenn ich das Programm nun etwa von Eclipse aus starte und mich dabei direkt "vor" dem Package Folder befinde klappt alles wunderbar. Versuche ich die VM aber zB von einem andern Verzeichnis aus mit der Pfadangabe aufzurufen, sucht er in dem Verzeichnis in dem ich mich gerade befinde nach dem Ordner, der natuerlich dort nicht vorhanden ist - kann man da was machen, etwa der VM nen Parameter mitgeben?
Ich starte so:
/Pfad/nach/bin/java -Djava.library.path=/Pfad/zu/einem/JNI/Paket/:/verschiedene/Pfade/fuer/voriges/Paket -cp /Pfad/zum/Projektfolder/:/Pfad/zum/JNI/Paket.jar Paketname.StarterKlasse
Es ist zum verzweifeln, ich hab auch schon versucht statt Paketname.StarterKlasse einen direkten Pfad mit / und . einzugeben - erfolglos. Wie macht man der VM klar wo sie sich befindet?
PS: ich habe mir fuer diese endlose Kette an Pfadangaben ein Script erstellt, in diesem umgehe ich das mit einem cd am Anfang, aber das kanns doch eig nich sein oder?
-
Kann man nicht nach dem Namen der Klasse die Parameter (args[]) angeben?
-
hm, nja klingt eigentlich plausibel. Klar, da diese sich ja unmittelbar auf den Code beziehn und die JVM Parameter wohl eher fuer die Rahmensachen, wie eben .jars und so da sind.. nja, fuer's erste bleib ich mal beim cd, wenn aber keine andre Antwort kommt, wird das wohl der Weg sein, Danke.
-
Über die Klasse kann man versuchen, den Pfad derer zu ermitteln:
objekt.getClass().getClassLoader().getResource("").getFile(); ... objekt.getClass().getResource("Res.RES");
Musst mal ein bischen rumexperimentieren.