Java/Tomcat没有足够的权限执行';java';
我在Ubuntu上的Tomcat服务器上的一个Java servlet中运行了以下代码:Java/Tomcat没有足够的权限执行';java';,java,ubuntu,tomcat,servlets,permissions,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/us
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/Folder中启动java进程的权限 检查运行tomcat的用户:
ps aux | grep tomcat
更改/home/user/文件夹的所有者,使其归运行tomcat的用户所有,或者相应地调整文件权限
要更改目录的所有者,请执行以下操作:
chown -R tomcat /home/user/Folder
chmod -R o+rwx /home/user/Folder
要添加权限(以便tomcat可以访问该文件夹),请执行以下操作:
chown -R tomcat /home/user/Folder
chmod -R o+rwx /home/user/Folder
注意您只需要选择一种方法,而不是两种方法。可能的原因:从您的另一个问题来看,您使用的是Linux机器,因此(除了标准Unix安全性之外)也可以使用,这允许指定进一步的限制。很有可能,tomcat(甚至java本身)受到限制,无法启动其他进程(要么全部启动,要么从指定列表启动)。我认为是同一个用户同时运行这两个进程。如果我运行您给我的命令,我在哪里可以看到tomcat从哪个用户运行?这是我的输出,这是否意味着它是一个名为tomcat7的用户我不知道这个存在。是的,那是tomcat用户。如果您通过软件包管理器安装了tomcat,那么您也会得到一个tomcat用户。在执行“ls-l”时,我得到了以下信息:
drwxr xrwx 5 tomcat7 raphael 4096 Jun 30 18:25 FolderName
可能更多的问题是没有运行“java”的权限,我没有丢失在文件夹中执行jar的权限,而是没有安装selinux。至少如果我调用getenforce
我会收到一条消息,安装selinux utils。