Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux中不同用户下的java系统首选项_Java_Linux_Tomcat_Permissions_Root - Fatal编程技术网

linux中不同用户下的java系统首选项

linux中不同用户下的java系统首选项,java,linux,tomcat,permissions,root,Java,Linux,Tomcat,Permissions,Root,我试图在一个linux机器上的不同用户下运行多个JVM(包括tomcat)。我没有看到太多的问题,但在卡塔琳娜,我一直看到: May 30, 2014 1:16:16 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 7626 ms May 30, 2014 1:16:37 PM java.util.prefs.FileSystemPreferences$2 run WARNING: Could not c

我试图在一个linux机器上的不同用户下运行多个JVM(包括tomcat)。我没有看到太多的问题,但在卡塔琳娜,我一直看到:

May 30, 2014 1:16:16 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7626 ms
May 30, 2014 1:16:37 PM java.util.prefs.FileSystemPreferences$2 run
WARNING: Could not create system preferences directory. System preferences are unusable.
May 30, 2014 1:16:55 PM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock System prefs. Unix error code -158097957.
May 30, 2014 1:16:55 PM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
我做了一些挖掘/阅读并得出以下结论:

具有root访问权限的管理员必须使用drwxr-xr-x访问权限创建系统首选项目录
/etc/.java/.systemPrefs。

Java正在寻找
/etc/.Java/.systemPrefs/.system.lock
/etc/.Java/.systemPrefs/.systemRootModFile

手动创建上述文件(使用“touch”创建空文件)及其包含目录应修复。文件的权限应为
544
,其目录的权限应为
755
,所有者和组均为root用户

但是

我不是root,让某人运行root非常昂贵,而且我有多个用户运行JVM,这是否意味着我必须创建这些文件并设置权限,以便所有用户都可以使用这些权限进行访问


有没有人遇到过这个问题,如果他们有,我缺少的是一个更简单的解决方案?

我的想法是,即使您有不同的用户,JVM仍然将tomcat作为一个用户读取,因为它是同一个过程。也许你需要的是一个用户管理机制?登录和注销

为每个用户设置以下设置:

mkdir -p ~/.java/.systemPrefs
mkdir ~/.java/.userPrefs
chmod -R 755 ~/.java
export JAVA_OPTS="-Djava.util.prefs.systemRoot=/home/user/.java -Djava.util.prefs.userRoot=/home/user/.java/.userPrefs"
  <run appl>
mkdir-p~/.java/.systemPrefs
mkdir~/.java/.userPrefs
chmod-R 755~/.java
export JAVA_OPTS=“-Djava.util.prefs.systemRoot=/home/user/.JAVA-Djava.util.prefs.userRoot=/home/user/.JAVA/.userPrefs”
在不创建目录的情况下,一些Java虚拟机默认为
/etc/


另请参见:

我通过将执行的Bash程序的权限设置为755修复了此问题

ls abc.sh
chmod 755 abc.sh

只需授予/etc/.java完全权限即可

chmod -R 777 /etc/.java/

sudo chmod -R 777 /etc/.java/