Java / Tomcat没有足够的权限来执行'java'

时间:2016-06-30 20:01:48

标签: java ubuntu tomcat servlets permissions

我在Ubuntu上的Tomcat服务器上的一个Java-Servlet中运行了以下代码:

ProcessBuilder pb = new ProcessBuilder( "java", "-jar", "test.jar", Integer.toString( jobId ), Integer.toString( software ), Integer.toString( entryPoint ), application );
pb.directory( new File( "/home/user/Folder" ) );
proc = pb.start();

但是在第三行我得到了这个错误:

java.io.IOException: Cannot run program "java" (in directory "/home/user/Folder"): error=13, Keine Berechtigung

它是德语,意味着它没有足够的权限来执行'java'。

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

这意味着启动tomcat服务器的用户没有权限在/ home / user / Folder中启动java进程。

检查谁在运行tomcat:

ps aux | grep tomcat

更改/ home / user / Folder的所有者,使其由运行tomcat的用户拥有或相应地调整文件权限

更改执行以下目录的所有者:

chown -R tomcat /home/user/Folder

添加权限(以便tomcat可以访问该文件夹),执行以下命令:

chmod -R o+rwx /home/user/Folder

注意!您只需要选择一种方法,而不是两种方法。

答案 1 :(得分:0)

可能的原因:AFAIR来自您的另一个问题,您使用的是Linux机器,因此除了标准的Unix安全性之外,还有SELinux正在运行,这允许指定进一步的限制。很有可能,对tomcat(甚至是java本身)施加了限制,阻止它启动其他进程(全部或从指定列表)。