java - 从 .jar 启动脚本
问题描述
我创建了一个 .jar,其中有一个名为 init.sh 的脚本
我得到了这个错误。
tim@TS:~/Desktop$ java -jar test.jar java.io.IOException: 无法运行程序“/init.sh”:错误=2,在 java.lang.ProcessBuilder.start(ProcessBuilder. java:1048)
在 java.lang.Runtime.exec(Runtime.java:621)
在 java.lang.Runtime.exec(Runtime.java:486)
在 Main.run(Main.java:42)
我在 Eclipse 上运行时有效的代码如下。
String[] cmd = {"src/init.sh"}; try { Runtime.getRuntime().exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
我试图改变它但没有成功。
String[] cmd = {"init.sh"};
我查看了我的 .jar 文件,init.sh 脚本与 Main.class 处于同一级别。
我的问题是:如果我想获得一个功能性的 .jar,我必须如何更改我的代码?
解决方案
基于此处的答案在jar 文件中执行 shell 脚本。如何提取?,看起来需要将shell脚本提取到jar文件之外的位置才能执行它。
推荐阅读
- python - 删除 Python DataFrame 中列的不需要的字符
- botframework - Microsoft Teams - 多窗口聊天特色 ID:57292 允许用户“关闭聊天窗口”是否会向机器人开发人员提供任何 API 事件?
- java - jenkins 和 Ubuntu 18.04.3 上的 chrome 崩溃错误
- lotus-notes - 如何在 Lotus 脚本中访问当前登录的用户电子邮件地址?
- angular - 我可以使用 Bootstrap 的 Carousel 一个简单的画廊(无链接)吗?
- laravel - Laravel 更新唯一键表中的角色唯一字段
- pdf - iTextsharp 合并不同大小的 pdf
- c - 我的 C 程序是正确的,没有错误或警告,但没有显示窗口。为什么?
- c++ - #using 的替代方案
在非托管 C++ 应用程序中? - wpf - 根据状态设置切换按钮的背景