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

标签 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”。

有人知道怎么解决吗?

最佳答案

这意味着启动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/

相关文章:

java - 如何自定义 log4j2 RollingFileAppender?

php - 在 Ubuntu 根问题上安装 MySql

java - GAE 应用程序在 tomcat 上给出错误 500;运行 javac.exe 编译器时出错

java.security.InvalidKeyException : Wrong algorithm: AES or Rijndael required Error

java - 如何从 Android 服务获取应用程序上下文?

python - 无法访问在ubuntu实例AWS上运行的Django服务器

bash - inotifywait 没有被 supervisorctl stop 杀死

java - 将 Java 服务器应用程序集成到 TomCat、GlassFish 等应用程序服务器中

java - 我应该使用什么 Maven 存储库来获取 tomcat jar?

java - 如何在Java中使用清屏