首页 > 解决方案 > 从 .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,我必须如何更改我的代码?

标签: java

解决方案


基于此处的答案在jar 文件中执行 shell 脚本。如何提取?,看起来需要将shell脚本提取到jar文件之外的位置才能执行它。


推荐阅读