Zum Inhalt springen

shell script aufrufen


Empfohlene Beiträge

Geschrieben (bearbeitet)

also tut mir leid, aber ihr habt einen Anfänger gerade sehr schlechten Stil gelehrt. In eine plattformunabhängigen Sprache wird auch plattformunabhängig programmiert, das aufrufen von irgendwelchen Shell-Scripts zählt ganz bestimmt nicht dazu.

Die Aufgabe, die das Script erledigt lässt sich garantiert auch in Java erledigen, zumal der "./"-Operator auf mangelnde Linux-Erfahrung schliessen lässt und schnell abstürzende Programme hervorbringt. "./" bedeutet, dass die Deklaration der ausführenden, zu benutzenden binary im script selbst liegt ... er hat das sehr wahrscheinlich nicht, es ist sein pures Glück dass /bin/bash bzw /bin/sh regelmässig alles bekommt und durchcheckt, auf hochproduktiven oder auch nur etwas andersartigen Unix-Systemen läuft das Ding nicht.

Runtime.exec und ProcessBuilder sollten meiner Meinung nach gelöscht werden, die verursachen immer Spaghettie-Code.

Also wenn der Threadersteller evtl. mal sein Linux-Script hier zeigt können wir definitiv helfen, es in Java umzusetzen ODER eine bessere Lösung zu finden ...

Bearbeitet von tha_specializt
Geschrieben
In eine plattformunabhängigen Sprache wird auch plattformunabhängig programmiert, das aufrufen von irgendwelchen Shell-Scripts zählt ganz bestimmt nicht dazu.

Entschuldige, aber so eine arme Argumentation habe ich selten gehört. Nur weil Java quasi plattformunabhängig ist, muss man auch so programmieren? Wenn die Zielplattform ausschließlich Windows/Linux/Irgendwas ist, was spricht dagegen, das Programm für diese Plattform anzupassen?

Die Aufgabe, die das Script erledigt lässt sich garantiert auch in Java erledigen

Viele Sachen lassen sich in Java regeln, aber bestimmt nicht alle.

Runtime.exec und ProcessBuilder sollten meiner Meinung nach gelöscht werden, die verursachen immer Spaghettie-Code.

Zum Glück stehst du mit deiner Meinung so ziemlich allein da. Was verstehst du denn unter Spaghetti-Code?

Gruß

Geschrieben (bearbeitet)
Entschuldige, aber so eine arme Argumentation habe ich selten gehört.

kann ich mir vorstellen ... Teamorientiertheit / Objektorientierte Programmierung, Effizienz und Nachvollziehbarkeit ist keine leichte Sache - jeder, der gerne irgendwas mitternächtlich zusammenhackt kennt das nicht.

Nur weil Java quasi plattformunabhängig ist, muss man auch so programmieren?

Wieso hast du dann überhaupt Java gewählt? Das primäre Argument für Java und fortschrittliche Technolgien ist dir egal? Dann benutz C++ oder sonstwas.

Wenn die Zielplattform ausschließlich Windows/Linux/Irgendwas ist, was spricht dagegen, das Programm für diese Plattform anzupassen?

zum Beispiel eine schöne Info, dir mir seltsamerweise ein Forentroll zukommen liess:

Code Conventions for the Java Programming Language

Und dann noch die generelle Struktur von Java "itself", viele schöne Code-Beispiele aus aller Welt und der (mitterweile gottseidank konsequent verfolgte) Hang, plattformabhängige Bibliotheken nach und nach zu ersetzen und schliesslich ganz abzustossen.

Viele Sachen lassen sich in Java regeln, aber bestimmt nicht alle.

ähm ... ääähhh ... ich sag jetzt besser nichts, das muss man selbst lernen/erfahren

Zum Glück stehst du mit deiner Meinung so ziemlich allein da.

Ja ... diese "Meinung" wird gottseidank nur überall gelehrt und praktiziert, sogar unter den antiquierten C'lern versucht man mittlerweile auf diese Art u. Weise zu programmieren, je nach Möglichkeit (ein schwaches Sympton ist zb. die allseits beliebte Benennung von Variablen nach deren Datentyp, also flt_zinssatz usw)

Was verstehst du denn unter Spaghetti-Code?

Ohje, diese Antwort wäre zu umfangreich um sie in wenige Worte fassen zu können, frag mal einen Informatik-Lehrer - der nimmt sich ein paar Stunden / Tage Zeit und erläutert es evtl. für dich

Bearbeitet von tha_specializt
Geschrieben
kann ich mir vorstellen ... Teamorientiertheit / Objektorientierte Programmierung, Effizienz und Nachvollziehbarkeit ist keine leichte Sache - jeder, der gerne irgendwas mitternächtlich zusammenhackt kennt das nicht.

Worauf willst du hinaus mit dieser Aussage?

Wieso hast du dann überhaupt Java gewählt?

Weil Java mir eine Fülle einzigartiger Frameworks bietet, die anderswo einfach nicht existieren. Damit spare ich Entwicklungszeit und arbeite wirtschaftlich.

Das primäre Argument für Java und fortschrittliche Technolgien ist dir egal?

Nein, ganz und gar nicht. Das primäre Argument für Java liegt meiner Meinung nach im Auge des Betrachters und muss zweifelfrei nicht immer ausschließlich 'Plattformunabhängigkeit' heissen. Fortschrittliche Technologie ist z.B. ein interessanter Punkt den ich kurz von dir aufnehmen möchte. Nehmen wir mal die Java Enterprise Technologie. Als Java Developer ist man oft damit konfrontiert sog. 'Legacy Systems' aus verschiedenen Gründen anzusteuern. An dieser Stelle muss oft, so schwer es auch sein mag, die Plattformunabhängigkeit verworfen werden. Eine andere Technologie ist z.B. SWT, mit der sich GUI im Stile des Betriebssystems realisieren lassen. Die Plattformunabhängigkeit wird auch hier verlassen.

zum Beispiel eine schöne Info, dir mir seltsamerweise ein Forentroll zukommen liess:

Code Conventions for the Java Programming Language

Guter Link, daran sollten sich viele Java Entwickler halten. Danke dafür. Worauf du aber in Bezug auf Plattformunabhängigkeit damit hinaus willst, musst du schon erklären.

ähm ... ääähhh ... ich sag jetzt besser nichts, das muss man selbst lernen/erfahren

Doch, genau hierzu solltest du dich mal äussern. Lass uns daran teilhaben, denn du scheinst ein erfahrener Java Entwickler zu sein.

Ja ... diese "Meinung" wird gottseidank nur überall gelehrt und praktiziert, sogar unter den antiquierten C'lern versucht man mittlerweile auf diese Art u. Weise zu programmieren, je nach Möglichkeit (ein schwaches Sympton ist zb. die allseits beliebte Benennung von Variablen nach deren Datentyp, also flt_zinssatz usw)

Worauf beziehst du dich mit dieser Aussage? Also es wird überall gelehrt und vor allem praktiziert, dass man ProcessBuilder usw. nicht nutzen soll?

Ohje, diese Antwort wäre zu umfangreich um sie in wenige Worte fassen zu können, frag mal einen Informatik-Lehrer - der nimmt sich ein paar Stunden / Tage Zeit und erläutert es evtl. für dich

Mir ist schon klar, was Spaghetti-Code ist, nur wird mir nicht klar, was das nun unbedingt mit ProcessBuilder und Konsorten gemein haben soll. Aber ich ahne worauf du hinaus willst: Du meinst das darunterliegende Programmfragment, dass aufgerufen wird?

Ich freue mich auf deine Konstruktive Antwort, und das meine ich ehrlich.

Gruß, und schönes Wochenende!

Geschrieben

Ah ja, tha_specializt du meinst also du bist hier der oberkönner? :rolleyes: (merkt man ja schon am namen)

Wenn hier jemand fragt wie er ein shell skript in java aufrufen kann, dann erklären wir ihm das, ob das jetzt sein programm plattformabhängig macht oder nicht, kann uns doch vollkommen egal sein. ER möchte wissen wie das geht, also erklär ich/wir es ihm!

Ich könnte ihm auch erklären wie er in Java dynamisch Skript Code erstellt, dann geht das auch wieder plattformunabhängig, aber das ist nicht die Antwort auf seine Frage.

Also komm mal runter und tue nicht so als wenn hier über uns stehst nur weil du vll nen bisschen was von java verstehst.

Geschrieben
Ah ja, tha_specializt du meinst also du bist hier der oberkönner? :rolleyes: (merkt man ja schon am namen) (...)

Ohje ... ein sehr junger Zeitgeselle (ich weiss, gleich postulierst du dein unglaublich grosses Alter ... ), ausser sinnfreien Assoziationen von Pseudonymen mit Ansichten/Absichten, infantiles rumgeflame und Troll-Gehabe ist bei dir nix mehr zu erwarten, viel Spass noch

Geschrieben

Nachteil an ProcessBuilder etc. ist allerdings das der neue Process genau so gross im Speicher ist wie der Heap der VM aus der dieser PRocess gestartet wurde. Also im mit Vorsicht zu geniessen. Ab Java 7 gibts dann einen echten Fork.

Geschrieben

Aye aye was hab ich hier nur ausgelöst :) Zankt euch doch nicht

Mir ist schon klar, dass das Ganze nicht plattformunabhängig ist und dass ich das Script nicht über ./ aufrufe hab ich auch nirgendwo mehr geschrieben, dass hatte ich lediglich am anfang gemacht und später durch bin/sh ersetzt...

A ber wie schon richtig gesagt wurde, wird das Programm lediglich auf einer Linux-Plattform laufen. Wenn ich lediglich das Programm nachprogrammieren wollte, hätte ich jenes stattdessen einfach immer bei Bedarf auf der Console aufgerufen :-P

Allerdings ist es ein sehr komplexes Script, welches wahrscheinliche Tage in Anspruch nehmen würde, bis es unter Java nachprogrammiert werdne würde. Der einzige Sinn der hinter dem ganzen steckt ist, dass der OUTPUT in einer GUI verwaltet werden soll.

Und zu allerletzt kann ich den Code nicht kopieren, weil er unter Copyright steht, denn das ganze gehört zu einem kommerziellen Produkt ^^.

Grüße

und

Vielen Dank

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...