当前位置: 首页 > 知识库问答 >
问题:

Java 无法执行 bash shell 脚本

袁元明
2023-03-14

我在尝试编译 eXo 平台时遇到麻烦。

错误消息是:

< code >原因:java.io.IOException:无法运行程序“/exo/platform-public-distributions-develop/PLF-community-Tomcat-standalone/target/platform-community-5.0 . x-SNAPSHOT/platform-community-5.0 . x-SNAPSHOT/addon”(在目录中“/exo/platform-public-distributions-develop/PLF-community-Tomcat-standalone”):error = 2,没有这样的文件或目录

目录是正确的,文件确实存在,并且权限是可执行的:

-rwxr-xr-x   1 root  wheel   3379 Sep  3 12:21 addon

那个“插件”是一个bash脚本。

我认为错误信息“没有这样的文件或目录”是错误的报告。我看到了这个回答,但它是在告诉我们修改源代码。有没有办法为Java设置一些路径来执行shell脚本?

共有1个答案

许淳
2023-03-14

bash脚本可能在顶部有一个sheang(#! /bin/sh)。这通常由bash在调用脚本时解释。但是,从java运行不会自动执行此操作。您需要显式调用bash来运行脚本。

您没有发布代码,但需要将bash(或/bin/bash)设置为可执行文件,并使脚本成为bash的第一个参数。这将显式调用bash来运行脚本。您需要执行:

/bin/bash /exo/platform-public-distributions-develop/plf-community-tomcat-standalone/target/platform-community-5.0.x-SNAPSHOT/platform-community-5.0.x-SNAPSHOT/addon

 类似资料:
  • 我有SunOs 5.10 unix服务器,在那里我编写了一个脚本来执行java文件,如下所示 在这个脚本中,有很多代码,其中包括日志文件,以及在导出JAVA HOME之前添加的其他二进制文件类路径。但当我执行时,我得到以下错误 我更改了很多java版本,但都出现了相同的错误

  • 问题内容: 我在String变量中有一个Rscript,我想从Java程序执行它并将一些变量传递给它。如果我独立执行该R脚本,则可以正常工作。我已通过使用Python程序将所有脚本转义,从而将该R脚本转换为一行,如下所示: 我将打印出的字符串用完,并将其存储在String变量中,然后使用以下代码执行,但它根本不起作用。我正在传递和可变到上述R脚本。 上面的代码可以与bash shell脚本一起正常

  • 我试图将selenium test之一迁移到空手道,同时这样做我正在使用在留档中定义的script()方法,该方法在空手道中用于评估给定字符串为浏览器内的JavaScript,但我得到了这个 还分享我的功能文件,其中得到失败: 甚至我也试着在脚本中调用下面的语句,但仍然得到相同的错误 我正在使用gatling版本

  • 我想在macos上使用apache2从PHP文件执行Python脚本。我能够执行简单的python脚本,如: 从PHP: 巨蟒 输出是: 但当我尝试导入以下包时: 我得到: 我的问题是,有人知道: 1–我如何使这些(以及任何其他)软件包工作? 2–shell_exec当前正在执行python2。如何添加Python 3?(如果我编写python3而不是python将无法工作)

  • 问题内容: 我有一个简单的PHP函数,该函数应在调用时执行Pyton脚本。我已经在我的php程序中多次尝试了这种功能,但是这次以某种方式该功能根本不执行python脚本。当我从命令提示符下访问脚本并运行时,它将成功执行。我要提到的一件事是,该脚本具有python的NLTK库的一些认真实现,并且执行和执行其操作(即数据处理并存储到db)需要20秒钟以上。执行延迟是否会导致此问题,或者这次我还缺少其他

  • 问题内容: 我在中有我的php脚本文件。何时运行,它运行完美。 我想通过sh文件调用PHP文件,SH文件的位置如下 这是文件的内容是: 当我运行时,它也可以完美运行。 现在,如果我按如下所示设置crontab: 但是,此crontab无法正常工作。 有什么事吗 问题答案: 从注释中可以看出,问题在于您没有定义应使用哪个程序来执行脚本。考虑到cronjob是在很小的环境中执行的;在那里,没有什么可以