Java Linux上的全局应用程序数据放在哪里(特别是Mint 13)?

Java Linux上的全局应用程序数据放在哪里(特别是Mint 13)?,java,linux,macos,data-storage,Java,Linux,Macos,Data Storage,我见过有人建议使用/var/lib,但这在我的系统上不起作用。除了/var/lock和/var/log之外,/var的每个子目录都是只读的 我是否只需要编写一个Linux shell脚本来授予超级用户访问权限?还是有基于Java的解决方案 /bin和/usr都是系统文件目录,所以我不想(也不能)在那里存储文件 只要应用程序只需要在我可以使用的用户范围内运行: System.getProperty("user.home") + File.separator + ".appname"' 用于数据目

我见过有人建议使用/var/lib,但这在我的系统上不起作用。除了/var/lock和/var/log之外,/var的每个子目录都是只读的

我是否只需要编写一个Linux shell脚本来授予超级用户访问权限?还是有基于Java的解决方案

/bin和/usr都是系统文件目录,所以我不想(也不能)在那里存储文件

只要应用程序只需要在我可以使用的用户范围内运行:

System.getProperty("user.home") + File.separator + ".appname"'
用于数据目录

但是持久性的系统范围数据呢?那去哪了

额外注意:我在MacOS上也有这个问题。我可以对特定于用户的数据使用/user/Library/Application支持,但我无法访问全局目录


第二个注意事项:我知道并使用了Preferences API。我正在寻找一种存储数据的方法,不包括这些数据。

从我收集的数据中,/var/lib/目录是放置数据的正确位置。访问这些目录时,您需要是root用户

您可以尝试使用工具箱提升linux中的权限。(这是免费软件。)

类似这样的东西可能对mac电脑有帮助

在Linux上,您还可以使用gksudo运行安装部分的例程。或者使用这里提到的命令


希望这能有所帮助。

通常使用系统的打包工具安装应用程序。但您也可以编写自己的安装程序脚本。在安装过程中,以root用户身份运行时,可能会创建一个新组,并在/var/lib下创建一个新目录,该目录归该组所有。例如,“定位”命令执行以下操作:

$ ls -l /usr/bin/locate
-rwx--s--x 1 root locate 42032 Nov 17 19:33 /usr/bin/locate
这是数据目录:

drwxr-x--- 2 root locate 4096 Nov 15  2010 /var/lib/slocate
locate命令使用setgid特性来设置自己要定位的进程组ID,这使它有权读取/var/lib/slocate子目录


在您的情况下,您(您的安装程序)将设置写入权限,以便应用程序可以代表用户在那里写入数据

它是什么类型的全局应用程序数据?通常使用
/var/lib
。你确定你没有访问权限吗?为什么你需要以普通用户的身份修改系统数据?我不需要修改系统数据,只需要为应用程序存储非用户特定的数据。我没有Linux Mint 13(MATE)上/var/lib的写入权限。什么样的数据?你见过和见过吗?