ArrayList an andere Java-Anwendung übergeben?

magic_halli

Erfahrenes Mitglied
Hi,

ich starte aus einem Java-Programm heraus eine andere Java-Anwendung, welche als JAR-File existiert und schicke dabei noch einen String meinStringParameter mit.
Der Aufruf geschieht erstmal so und funktioniert auch:
Java:
Runtime rt1 = Runtime.getRuntime();
rt1.exec("java -jar /workspace/AssemblyAFPSExternal.jar " + meinStringParameter);

Frage:
Ist es irgendwie möglich, eine ArrayList an eine Java-Anwendung zu übergeben und diese dann dort in der main() wieder auszulesen und zu verwenden? Leider gibts ja nur in der main() das 'String[] args'... :rolleyes:

Hintergrund: Ich möchte einfach vermeiden, mit einem Textfile als "transportablen" Datenspeicher zu arbeiten, dass mir meine Werte bereitstellt, die ich in der aufgerufenen Java-Anwendung nutzen muss. Eine ArrayList ist mir wesentlich lieber! :)

Danke und Gruß
 
hmmm also so ist es erstmal denke ich nicht möglich eine Arraylist weiterzugeben.
Aus meiner sicht geht da kein Weg an einer Datei vorbei. Jedoch gibt es interessante Möglichkeiten nicht selbst groß zu serialiseren und zu deserialiseren. Eine Möglichkeit wäre IMHO yaml.
http://yaml.org/spec/current.html
Es gibt dazu AFAIK mindestens 2 brauchbare Implementationen in Java, wobei ich jedoch nur Erfahrung mit einer habe, die ganz gut funktioniert, jedoch eine Schwäche hat in Bezug auf brauchbare Fehlermeldungen.
https://jvyaml.dev.java.net/
Es gibt vielleicht auch inzwischen bessere Implementationen, aber dies ist, die ich benutze, wenn gleich meist für komplexere Initialisierungsdateien.

Vielleicht ist dies für Dich eine Kanone für Deinen Spatz und Du bevorzugst lieber eigene Programierkünste. Aber einen direkten Weg für Dein Anliegen kenne ich so nicht.
 
Dem Jar kannst du nur String Werte als Argumente übergeben. Die einzige möglichkeit, die ich sehe, ist in der Zielanwendung einen RMI Server zu starten und diesen vom Client aus zu benutzen.

Gruß
Ollie
 
Hi,

wenns sich um serialisierbare Objekte handelt kannst Du das Array auch mit Hilfe von ObjectOutputStream und Base64 in einen String wandeln und auf der anderen Seite wieder einlesen.

hmf
 
Hi,

wenns sich um serialisierbare Objekte handelt kannst Du das Array auch mit Hilfe von ObjectOutputStream und Base64 in einen String wandeln und auf der anderen Seite wieder einlesen.

hmf
...das klingt doch nichtmal so schlecht! Das würde ich gern versuchen.
Gibts hierfür evtl. Beispiele, die ihr kennt - ich aber noch nicht gefunden habe? :rolleyes:

Danke und Gruß

EDIT: Ich habe was gefunden und denke, so müsste es gehen, oder?
Java:
OutputStream fos = null;
fos = new FileOutputStream( "test.ser" );
ObjectOutputStream o = new ObjectOutputStream( fos );
o.writeObject( alFiles );
fos.close();
 
Zuletzt bearbeitet:
Zurück