无法运行tomcat java:权限被拒绝

时间:2014-01-27 05:24:35

标签: java eclipse tomcat

当我在终端sh startup.sh中键入ubuntu时,我发现下面的日志并且我的tomcat服务器无法启动。我可以从server运行eclipse ide但我无法从terminal.sudo sh startup.sh运行它。感谢你们所有人以前给我答案它工作得很好。现在另一个问题是mvn clean install以前没有工作它现在也工作了它告诉程序'mvn'可以在以下包中找到:  * maven  * maven2 这在日食中也可以正常工作吗?

 INFO: Server startup in 5732 ms
 20 Jan, 2014 7:39:54 PM org.apache.coyote.http11.AbstractHttp11Protocol pause
 INFO: Pausing Coyote HTTP/1.1 on http-8080
 20 Jan, 2014 7:39:54 PM org.apache.coyote.ajp.AjpProtocol pause
 INFO: Pausing Coyote AJP/1.3 on ajp-8009
 20 Jan, 2014 7:39:55 PM org.apache.catalina.core.StandardService stopInternal
 INFO: Stopping service Catalina
         ./catalina.sh: 1: eval: /opt/jdk1.6.0_23/bin/java: Permission denied
         ./catalina.sh: 1: eval: /opt/jdk1.6.0_23/bin/java: Permission denied

2 个答案:

答案 0 :(得分:0)

catalina.sh脚本通过运行以下内容来启动tomcat实例:

eval "\"$_RUNJAVA\"" <lots of options> ...
  org.apache.catalina.startup.Bootstrap "$@" start \
  >> "$CATALINA_OUT" 2>&1 "&"

其中$_RUNJAVA先前已设置为Java可执行文件的路径名。

现在这显然是失败的,说“/opt/jdk1.6.0_23/bin/java:Permission denied”

这可能意味着一些事情:

  • /opt/jdk1.6.0_23/bin/java文件与该路径名不存在。 (这可能是因为符号链接破坏了......)
  • /opt/jdk1.6.0_23/bin/java文件确实存在,但当前(有效)用户无法执行该文件。
  • /opt/jdk1.6.0_23/bin/java文件确实存在,但由于路径名中某些目录的权限,当前用户被禁止访问它。
  • (如果您正在使用SELinux / enforcing ...或等效项),则策略配置为不允许在该上下文中执行该可执行文件。

所以...:

  • 检查您实际使用哪个有效用户来启动Tomcat。
  • 检查该位置是否存在该文件。 (也许您在不同的位置安装了较新的Java。)
  • 检查该用户是否可执行。
  • 检查文件的路径。
  • 如果您使用的是SELinux(或同等产品),请检查安全日志中是否有与此相对应的事件。

如果问题是您使用的是错误的Java安装,那么“修复”将取决于您的运行方式catalina.sh。如果您是从shell手动运行它,请确保在shell中正确设置并导出JAVA_HOME。如果从“init”脚本运行catalina.sh,请检查脚本正在执行的操作...


(这不一定与catalina.sh本身的权限有关。)

答案 1 :(得分:0)

sudo sh startup.sh工作。感谢大家以前为我提供的答案只有sh startup.sh才能正常工作。这是java permision问题我现在发现我设置了java的完全权限,它也适用于sh startup.sh。