# Sh Script in JSON Datei



## Lia (17. Apr 2019)

Hi,

kann ich in einer JSON Datei einen Pfad angeben?

"Name" : "folder/name.sh"

Vielen Dank und Liebe Grüße
Lia


----------



## Robat (17. Apr 2019)

Klar warum nicht? Ist ja im Endeffekt auch nur ein String


----------



## Lia (17. Apr 2019)

@Robat OK, wollte nur nochmal sicher gehen  danke 

Dh ich kann im Java Programm quasi dieses Skript ausführen richtig ??


----------



## Robat (17. Apr 2019)

Wenn das Skript an dieser Stelle liegt, ja


----------



## mihe7 (17. Apr 2019)

Lia hat gesagt.:


> Dh ich kann im Java Programm quasi dieses Skript ausführen richtig ??


Warum sollte man das tun wollen?


----------



## Lia (17. Apr 2019)

Das entsprechende Skript soll auf einem anderen Server ausgeführt werden


----------



## mihe7 (17. Apr 2019)

Lia hat gesagt.:


> Das entsprechende Skript soll auf einem anderen Server ausgeführt werden


Ja, das war mir schon klar  Aber was ist der Sinn des Ganzen? Ich hätte damit ein kleines Sicherheitsproblem.


----------



## Lia (18. Apr 2019)

Also bitte korriegere mich wenn ich etwas dummes sage
Ich habe in einem Ordner in Eclpse ein Programm also auch eine Java Klasse .. dann wollte ich in einer json Datei ein shell Script angeben. Und dieses Programm erstmal als jar datei umwandeln und dann auf einem anderen Server ausführen.. ich weiß noch nicht genau wie das alles laufen soll, bin noch komplet neu in dem thema, aber wollte eifnach mal etwas rumprobieren


----------



## mihe7 (18. Apr 2019)

Jetzt mal langsam. Dazu bräuchtest Du natürlich eine Serverkomponente, die das JSON liest und das darin angegebene Script ausführt.

Du müsstest uns schon verraten, was Dein Gesamtvorhaben ist. Vermutlich bist Du nämlich auf dem Holzweg


----------



## kneitzel (18. Apr 2019)

Also ich kann Deinen Gedankengängen gerade nicht folgen.

Hast Du eine Server <-> Client Struktur und möchtest einen zentralen Server haben, der dann anderen Systemen sagen kann, was diese tun sollen?

Oder hast Du mehr den Fall, dass Du einen Entwicklungsrechner hast. Diesen nutzt du um in Eclipse ein Java Programm zu schreiben, welches dann am Ende als jar Datei zu anderen Systemen geht um da dann ausgeführt zu werden?

Alles beides geht. Bei ersterem ist es aber eher unüblich, einen Java Client zu nutzen, da hier die Anforderungen zu komplex sind. Da sind native Applikationen (SCCM*, jamf PRO*, ...) oder gar reine scripts (Munki*) üblich. Der zweite Fall ist natürlich trivialer, aber Du hast da natürlich auf jedem System, auf dem du das jar ausführen willst, die Voraussetzung, dass Java installiert ist in einer passenden Version. Daher wäre da die Frage, wieso nicht einfach direkt ein Script verwendet wird....

Viele Grüße,

Konrad 

*) Einfach ein paar Verwaltungs-Tools, die ich so kenne. SCCM ist von Microsoft und eine reine native Entwicklung, jamf PRO hat den java basierenden Server und native clients. Munki ist ein interessantes Open Source Produkt für Macs, welches Clientseitig nur Scripts hat und Server Seitig nur eine reine Dateistuktur benötigt) Davon aber bitte nicht verwirren lassen.


----------



## Lia (8. Mai 2019)

Hi Konrad 

Ja genau es ist der zweite Fall. Ich würde gerne das Java script auf dem Test Server ausführen. Und diese dann als jar File auf dem Testserver starten..

Hierfür kann ich den Process Builder nutzen richtig ??  Kann man dem Process builder als Parameter auch einen Pfad geben ? Wo das entsprechende Skript liegt welches er ausführen soll?

Liebe Grüße
Lia


----------



## mihe7 (8. Mai 2019)

Wieso kopierst Du nicht einfach die Datei auf den Testserver und führst sie dort aus?!?


----------



## Lia (8. Mai 2019)

@mihe7 ich probiere es erstmal lokal ein Skript auszuführen xD 

Habe jetzt Mal


```
ProcessBuilder Pb = new ProcessBuilder ();
try{
Pb.start();
}

catch()...
```

Bekomme die Fehlermeldung create process Ist keine zuverlässigr win32 Anwendung :/


----------



## kneitzel (8. Mai 2019)

Also um ein Shell Script auszuführen brauchst Du keine jar Datei. So eine Java Applikation als Wrapper um einen Script macht aus meiner Sicht nicht wirklich viel Sinn. Was macht die Java Applikation sonst noch, so dass sich der Aufwand lohnt?

Bei Deinem Code fehlt aber auch der genaue Befehl, den er ausführen soll. Schau Dir mal http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_11_005.htm an.


----------



## Lia (10. Mai 2019)

@kneitzel danke für deine Antowrt =)

Die Java applikation soll etwas aus der Json Datei auslesen und dann ein bestimmtes skript ausführen . Ich habe die JSON vorher als "externe Datei" auf dem rechner gehabt. Jetzt habe ich sie mal bei Eclipse mit eingebaut.. funktioniert ja im Prinzip genauso.. Das auslesen der json datei funktioniert soweit, nur weiss ich nicht genau wie ich das mit dem Process Builder einbauen soll.. oder mit dem Runtime.exec();


----------



## Thallius (10. Mai 2019)

Was mich gerade verwirrt. Ist ein .sh file nicht eigentlich ein Linux Bash? Oder kann Windows das mittlerweile auch?


----------



## Lia (10. Mai 2019)

Ja das shellscript führe ich auf einem Linux Testserver aus.. deswegen wollte ich es dann auch in jar file umwandeln


----------



## mihe7 (10. Mai 2019)

@Lia, jetzt schreib halt mal konkret, um was es wirklich geht. Was Du da machst, funktioniert nicht. Du kannst kein Shellscript in ein Jar umwandeln und Du kannst nicht irgendwelche Linux-Programme einfach so auf Windows ausführen.

Also: was macht das Shellskript? Was macht Dein Java-Programm? Auf welchem Rechner bzw. welchen Rechnern soll was laufen und warum?


----------



## kneitzel (10. Mai 2019)

Thallius hat gesagt.:


> Was mich gerade verwirrt. Ist ein .sh file nicht eigentlich ein Linux Bash? Oder kann Windows das mittlerweile auch?


Also so man eine bash auf dem Rechner hat, funktioniert auch ein bash script. Und unter Windows gibt es da mehrere Möglichkeiten. Cygwin bringt z.B. eine bash mit, ggf. gibt es diese aber auch so für Windows übersetzt so wie es das für viele GNU Tools ja der Fall ist. Und mit dem Linux Subsystem wird bei Windows 10 auch bestimmt die bash mit dabei sein.

Aber ansonsten gebe ich @mihe7 duchaus Recht: Derzeit macht das alles nicht ganz so viel Sinn. Evtl. ist die Idee, über so etwas das Script zu verstecken, aber in dem jar File ist es ja auch nicht wirklich geschützt. Wenn es ein reines Lernen ist, dann kann man gerne das starten von externen Prozessen üben, aber dazu reicht dann ein einzelner Rechner aus ...

Daher war mein erster Gedanke, dass hier sowas wie ein Client<->Server System aufgebaut werden soll. Da könnte sowas durchaus Sinn machen. (Und clients bekommen dann von irgendwoher Informationen, was diese zu tun haben oder so.) Dann ginge das Ganze evtl. etwas Richtung Ansible und co. Aber das wurde ja auch verneint. Daher bin ich auch einmal gespannt, was hier der Hintergrund ist.


----------



## mrBrown (10. Mai 2019)

kneitzel hat gesagt.:


> Daher bin ich auch einmal gespannt, was hier der Hintergrund ist.


Ich tippe auf X-Y Problem...


----------

