{"id":18304,"date":"2024-03-15T16:39:49","date_gmt":"2024-03-15T16:39:49","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/"},"modified":"2024-03-21T12:59:21","modified_gmt":"2024-03-21T12:59:21","slug":"how-can-java-call-a-shell-script","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/","title":{"rendered":"How can Java call a shell script?"},"content":{"rendered":"<p>In Java, you can use the ProcessBuilder class to execute shell scripts. Here is an example code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> java.io.BufferedReader;\r\n<span class=\"hljs-keyword\">import<\/span> java.io.IOException;\r\n<span class=\"hljs-keyword\">import<\/span> java.io.InputStreamReader;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ShellScriptExample<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        <span class=\"hljs-keyword\">try<\/span> {\r\n            <span class=\"hljs-comment\">\/\/ \u521b\u5efaProcessBuilder\u5bf9\u8c61\u5e76\u6307\u5b9a\u8981\u6267\u884c\u7684\u547d\u4ee4<\/span>\r\n            <span class=\"hljs-type\">ProcessBuilder<\/span> <span class=\"hljs-variable\">processBuilder<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ProcessBuilder<\/span>(<span class=\"hljs-string\">\"\/bin\/sh\"<\/span>, <span class=\"hljs-string\">\"\/path\/to\/script.sh\"<\/span>);\r\n\r\n            <span class=\"hljs-comment\">\/\/ \u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\uff08\u53ef\u9009\uff09<\/span>\r\n            processBuilder.directory(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">File<\/span>(<span class=\"hljs-string\">\"\/path\/to\/directory\"<\/span>));\r\n\r\n            <span class=\"hljs-comment\">\/\/ \u542f\u52a8\u547d\u4ee4\u5e76\u83b7\u53d6\u8fdb\u7a0b\u5bf9\u8c61<\/span>\r\n            <span class=\"hljs-type\">Process<\/span> <span class=\"hljs-variable\">process<\/span> <span class=\"hljs-operator\">=<\/span> processBuilder.start();\r\n\r\n            <span class=\"hljs-comment\">\/\/ \u8bfb\u53d6\u547d\u4ee4\u7684\u8f93\u51fa<\/span>\r\n            <span class=\"hljs-type\">BufferedReader<\/span> <span class=\"hljs-variable\">reader<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">BufferedReader<\/span>(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">InputStreamReader<\/span>(process.getInputStream()));\r\n            String line;\r\n            <span class=\"hljs-keyword\">while<\/span> ((line = reader.readLine()) != <span class=\"hljs-literal\">null<\/span>) {\r\n                System.out.println(line);\r\n            }\r\n\r\n            <span class=\"hljs-comment\">\/\/ \u7b49\u5f85\u547d\u4ee4\u6267\u884c\u5b8c\u6bd5<\/span>\r\n            <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">exitCode<\/span> <span class=\"hljs-operator\">=<\/span> process.waitFor();\r\n\r\n            <span class=\"hljs-keyword\">if<\/span> (exitCode == <span class=\"hljs-number\">0<\/span>) {\r\n                System.out.println(<span class=\"hljs-string\">\"\u547d\u4ee4\u6267\u884c\u6210\u529f\"<\/span>);\r\n            } <span class=\"hljs-keyword\">else<\/span> {\r\n                System.out.println(<span class=\"hljs-string\">\"\u547d\u4ee4\u6267\u884c\u5931\u8d25\"<\/span>);\r\n            }\r\n\r\n        } <span class=\"hljs-keyword\">catch<\/span> (IOException | InterruptedException e) {\r\n            e.printStackTrace();\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the code above, we use the ProcessBuilder class to set the command to be executed and the working directory. Then, we use the start() method to launch the command and get the process object. We can retrieve the output of the command by using the getInputStream() method to read the output stream.<\/p>\n<p>Finally, we use the waitFor() method to wait for the command to be executed and retrieve the exit code of the command. By checking the value of the exit code, we can determine whether the command was executed successfully.<\/p>\n<p>Please note that the command paths and working directory in the examples above should be modified according to your actual situation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, you can use the ProcessBuilder class to execute shell scripts. Here is an example code: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ShellScriptExample { public static void main(String[] args) { try { \/\/ \u521b\u5efaProcessBuilder\u5bf9\u8c61\u5e76\u6307\u5b9a\u8981\u6267\u884c\u7684\u547d\u4ee4 ProcessBuilder processBuilder = new ProcessBuilder(&#8220;\/bin\/sh&#8221;, &#8220;\/path\/to\/script.sh&#8221;); \/\/ \u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\uff08\u53ef\u9009\uff09 processBuilder.directory(new File(&#8220;\/path\/to\/directory&#8221;)); \/\/ \u542f\u52a8\u547d\u4ee4\u5e76\u83b7\u53d6\u8fdb\u7a0b\u5bf9\u8c61 Process process = processBuilder.start(); \/\/ \u8bfb\u53d6\u547d\u4ee4\u7684\u8f93\u51fa [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18304","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How can Java call a shell script? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How can Java call a shell script?\" \/>\n<meta property=\"og:description\" content=\"In Java, you can use the ProcessBuilder class to execute shell scripts. Here is an example code: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ShellScriptExample { public static void main(String[] args) { try { \/\/ \u521b\u5efaProcessBuilder\u5bf9\u8c61\u5e76\u6307\u5b9a\u8981\u6267\u884c\u7684\u547d\u4ee4 ProcessBuilder processBuilder = new ProcessBuilder(&quot;\/bin\/sh&quot;, &quot;\/path\/to\/script.sh&quot;); \/\/ \u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\uff08\u53ef\u9009\uff09 processBuilder.directory(new File(&quot;\/path\/to\/directory&quot;)); \/\/ \u542f\u52a8\u547d\u4ee4\u5e76\u83b7\u53d6\u8fdb\u7a0b\u5bf9\u8c61 Process process = processBuilder.start(); \/\/ \u8bfb\u53d6\u547d\u4ee4\u7684\u8f93\u51fa [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T16:39:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:59:21+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How can Java call a shell script?\",\"datePublished\":\"2024-03-15T16:39:49+00:00\",\"dateModified\":\"2024-03-21T12:59:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\"},\"wordCount\":137,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\",\"name\":\"How can Java call a shell script? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:39:49+00:00\",\"dateModified\":\"2024-03-21T12:59:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How can Java call a shell script?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How can Java call a shell script? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/","og_locale":"en_US","og_type":"article","og_title":"How can Java call a shell script?","og_description":"In Java, you can use the ProcessBuilder class to execute shell scripts. Here is an example code: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ShellScriptExample { public static void main(String[] args) { try { \/\/ \u521b\u5efaProcessBuilder\u5bf9\u8c61\u5e76\u6307\u5b9a\u8981\u6267\u884c\u7684\u547d\u4ee4 ProcessBuilder processBuilder = new ProcessBuilder(\"\/bin\/sh\", \"\/path\/to\/script.sh\"); \/\/ \u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\uff08\u53ef\u9009\uff09 processBuilder.directory(new File(\"\/path\/to\/directory\")); \/\/ \u542f\u52a8\u547d\u4ee4\u5e76\u83b7\u53d6\u8fdb\u7a0b\u5bf9\u8c61 Process process = processBuilder.start(); \/\/ \u8bfb\u53d6\u547d\u4ee4\u7684\u8f93\u51fa [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:39:49+00:00","article_modified_time":"2024-03-21T12:59:21+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How can Java call a shell script?","datePublished":"2024-03-15T16:39:49+00:00","dateModified":"2024-03-21T12:59:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/"},"wordCount":137,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/","name":"How can Java call a shell script? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:39:49+00:00","dateModified":"2024-03-21T12:59:21+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-java-call-a-shell-script\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How can Java call a shell script?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18304"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18304\/revisions"}],"predecessor-version":[{"id":51973,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18304\/revisions\/51973"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}