Spring 项目执行 Jar 包中的 Shell 脚本:完整指南和示例
要在 Spring 项目中执行一个包含在 jar 包中的 shell 脚本,你可以使用 Java 的 Runtime 类来执行命令行命令。\n\n下面是一个示例代码,展示了如何在 Spring 项目中执行一个 shell 脚本:\n\njava\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\npublic class ShellExecutor {\n\n public static void main(String[] args) {\n executeShellScript();\n }\n\n public static void executeShellScript() {\n try {\n // 获取当前类的 ClassLoader\n ClassLoader classLoader = Thread.currentThread().getContextClassLoader();\n \n // 使用 ClassLoader 获取 shell 脚本的路径\n String scriptPath = classLoader.getResource("script.sh").getPath();\n \n // 构建命令行命令\n String command = "sh " + scriptPath;\n \n // 执行命令\n Process process = Runtime.getRuntime().exec(command);\n \n // 获取命令执行的输出结果\n BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));\n String line;\n while ((line = reader.readLine()) != null) {\n System.out.println(line);\n }\n \n // 等待命令执行完成\n int exitCode = process.waitFor();\n \n // 输出命令的退出码\n System.out.println("Exit Code: " + exitCode);\n \n } catch (IOException | InterruptedException e) {\n e.printStackTrace();\n }\n }\n}\n\n\n在上面的示例代码中,我们首先获取了 shell 脚本的路径,并构建了一个命令行命令来执行该脚本。然后,我们使用 Runtime 类的 exec 方法执行该命令,并通过 Process 对象获取命令执行的输出结果。最后,我们等待命令执行完成,并输出命令的退出码。\n\n请注意,上述示例代码假设 shell 脚本文件名为"script.sh",并放置在 classpath 下的根目录中。你需要根据你的实际情况修改脚本的路径和名称。
原文地址: https://www.cveoy.top/t/topic/pBm5 著作权归作者所有。请勿转载和采集!