Я пытаюсь запустить скрипт bash из программы Java, которую я пишу в окнах. Я пытаюсь использовать объект Runtime, чтобы заставить процесс работать, и моя программа компилируется и выполняется без исключений, но мой простой тестовый скрипт, который просто создает каталог, не выполняется.Как запустить скрипт cygwin из java
Вот что у меня до сих пор:
String cmmd[] = new String[3];
cmmd[0] = "C:\\cygwin\\bin\\bash.exe";
cmmd[1] = "cd C:/Users/pro-services/Desktop/projects/github/cygwin";
cmmd[2] = "bash TEST.sh";
Runtime rt= Runtime.getRuntime();
Process proc = rt.exec(cmmd);
В основном это смесь разных вещей, которые я нашел в форумах вокруг сети, но я предполагаю, что я просто не понимаю, что происходит с классом Process (и у меня есть только базовое представление о классе Runtime).
Я также нашел, что это, и подключил свой собственный материал в котором я думал, что он должен идти:
Runtime.getRuntime().exec(new String[]{"C:\\cygwin\\bin\\bash.exe",
"-c", "c:\\cygwin\\bin\\run.exe -p /bin bash C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh"},
new String[]{"PATH=/cygdrive/c/cygwin/bin"});
Здесь я не уверен, что представляют "-c"
и "-p"
строки, но я просто пошел с ним. Сначала было похоже, что я могу просто подключить последовательные команды, которые я хочу выполнить для объекта Runtime/Process, по сути создавая «скрипт» для запуска моего скрипта. Но теперь кажется, что есть еще что-то ...
Я сейчас стреляю в темноте, и я попытался понять документацию, но я потерялся. Любая помощь будет оценена по достоинству. Спасибо)))
, а затем просто запустить 'RUNTIME Rt = Runtime.getRuntime(); \t \t Process proc = rt.exec (cmmd); '? Таинственным образом я до сих пор не получаю никакого результата. Спасибо, это выглядит лучше. – blaughli