Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] eseguire .sh e .bat

    Salve,
    è possibile eseguire da uno script java un file .sh (per unix) e .bat (per windows) ?

    Ho provato Runtime.getRuntime().exec("/bin/bash ./nomefile.sh"); oppure Runtime.getRuntime().exec("./nomefile);

    ma purtroppo lo script non viene avviato.

    Inoltre se digito ls oppure ls /home/nomeutente funziona alla perfezione.

    Il mio obbiettivo è quello di gestire ogni comando con java, quindi fare exec("cd /home"), exec("ls") etc. ma, purtroppo non viene eseguito correttamente perchè ovviamente il terminale si chiude dopo ogni esecuzione.

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Per quanto riguarda l'esecuzione di un file shell-script (.sh) la cosa è piuttosto semplice e banale:

    codice:
    Runtime.getRuntime().exec("./nomefile.sh");   // Serve anche il .sh!!
    Chiaramente il file, con quell'istruzione, deve trovarsi nella stessa directory da cui viene eseguito il programma Java.

    Per comandi interni alla shell si deve avviare, chiaramente, la shell passando i parametri. L'argomento è stato trattato pochissimo tempo fa in questa discussione:
    http://forum.html.it/forum/showthrea...readid=1482551

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] eseguire .sh e .bat

    Originariamente inviato da internet.forum.
    Il mio obbiettivo è quello di gestire ogni comando con java, quindi fare exec("cd /home")
    Come mi pare di averti già detto in un'altra discussione, questo non funziona: cd non è un "eseguibile" ma un comando interpretato dalla shell.

    Le uniche possibilità per lanciare da Java più comandi insieme e nel contesto della stessa "shell" sarebbero (se non sto dimenticando io qualcosa):
    a) Eseguire uno script
    b) Avviare la shell in modalità "interattiva" (vedi man page di una shell specifica) e poi da Java "pilotare" dagli InputStream/OutputStream del Process la shell come se stessi digitando e vedendo fisicamente i comandi.

    Nel caso b) sarebbe un po' "fumoso" se fosse solo gestito programmaticamente in modo specifico, non cioè un modo generico per fare una specie di "terminale" su Java che riproduce una console.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.