我在 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”。
有人知道怎么解决吗?
最佳答案
这意味着启动tomcat服务器的用户没有权限启动/home/user/文件夹内的java进程。
检查谁在运行 tomcat:
ps aux | grep tomcat
要么更改/home/user/Folder 的所有者,使其归运行 tomcat 的用户所有,要么相应地调整文件权限
要更改目录的所有者,请执行以下操作:
chown -R tomcat /home/user/Folder
要添加权限(以便 tomcat 可以访问该文件夹),请执行以下操作:
chmod -R o+rwx /home/user/Folder
注意!您只需选择一种方法,无需同时选择两种方法。
关于Java/Tomcat 没有足够的权限执行 'java',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38132257/