我在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'。
有谁知道如何解决这个问题?
答案 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本身)施加了限制,阻止它启动其他进程(全部或从指定列表)。