Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
Java 在Linux中存储程序信息的位置和方式_Java_Linux - Fatal编程技术网

Java 在Linux中存储程序信息的位置和方式

Java 在Linux中存储程序信息的位置和方式,java,linux,Java,Linux,我是Linux新手,我只在Linux上玩过,但现在我想让我的Java程序在Linux上运行 我在互联网上快速浏览了一下,找到了一个目录及其描述的列表/usr/lib似乎是我存储程序信息的最佳位置,但我刚刚在VirtualBox VM上查看了其中的内容,似乎我无法在其中写入内容,即使有root权限。如果有人能给我指出正确的方向,那就太棒了 我还注意到Linux有自己的“软件中心”,我担心我可能会在这方面走错方向,因此,如果有人愿意提供一个,那么对Linux编程的一些介绍可能会有所帮助 提前谢谢 P

我是Linux新手,我只在Linux上玩过,但现在我想让我的Java程序在Linux上运行

我在互联网上快速浏览了一下,找到了一个目录及其描述的列表
/usr/lib
似乎是我存储程序信息的最佳位置,但我刚刚在VirtualBox VM上查看了其中的内容,似乎我无法在其中写入内容,即使有root权限。如果有人能给我指出正确的方向,那就太棒了

我还注意到Linux有自己的“软件中心”,我担心我可能会在这方面走错方向,因此,如果有人愿意提供一个,那么对Linux编程的一些介绍可能会有所帮助

提前谢谢


PS My Virtual Machine是一个Ubuntu发行版

将其存储在运行程序的用户的主目录下-在一个隐藏目录中(前面带有点),例如:。程序数据。它的短路径是:~/。程序数据和完整路径取决于操作系统的发行版-通常是/home/[user name]/。程序数据不仅是Linux的文件系统结构,而且任何与POSIX兼容的系统(包括BSD、Solaris,甚至Mac OS X)都是标准化的。特别是对于Ubuntu,请看一下Ubuntu java团队的和

如果您的程序以交互方式运行,它应该将信息(如数据库和设置)存储在
$HOME/。您的程序名
(或
$HOME/.config/您的程序名
)中。如果您的程序是系统服务,它应该将其信息存储在
/var/lib
中。您还可以将默认配置安装到程序名
/etc/中

二进制文件是一个完全不同的协议,它们的位置前缀应该是可配置的。要充分利用软件中心及其依赖项/更新机制,请使用您的软件。如果打包,这些二进制文件(及其附带的库)将进入
/usr/
树,如果手动安装,则进入
/usr/local/
。无论前缀是什么,二进制文件都进入
bin
(即
/usr/bin
),库进入
lib32
/
lib64
,其他数据进入
共享


如果您不想打包您的程序,也不想遵循FHS强加的结构(但您确实应该这样做),那么另一种选择是将代码和其他对象放入
/opt/您的程序名
。请注意,您的程序生成和操作的(可变)数据仍应放入
$HOME/。您的程序名
(交互式)或
/var/lib/您的程序名
(服务)。

存储应用程序的最简单位置是主目录。您可能需要为服务创建一个用户和单独的主目录


不过,听起来您好像在用Java编写命令行或GUI工具。存储应用程序的常用位置位于
bin
目录下,如
/usr/local/bin
/home/myuser/bin
lib
通常用于应用程序加载的共享库。(Java不使用它们)

您应该始终在$HOME目录中存储/安装应用程序和程序

这将使您能够轻松找到应用程序和程序

为$HOME以下的软件和程序制作单独的文件夹,以便于识别


另外,在.bashrc文件中添加JAVA_HOME环境变量。

Linux是一个内核,你是在说Ubuntu吗?这个术语是不是在说“Solaris”?你知道,就像Ubuntu和Gnome——所有那些使用Linux的操作系统!但是,是的,在这个特殊的例子中,我正在用Ubuntu进行测试……Solaris和Linux都是UNIX。Solaris不是Linux的一种类型。不要期望所有发行版都是相同的…Linux发行版通常遵循FHS:要查找的系统属性是“user.home”,它将给出主目录的路径,如:system.getProperty(“user.home”)。这比我最初预期的要复杂得多,而且
home/.program name
对我来说似乎不太合适,尤其是考虑到我当时在那里看不到任何其他东西。。。我之所以提到“usr/lib”,是因为我的其他程序似乎都在那里,但经过再三考虑,我通过软件中心下载了它们。所以,如果我不使用软件中心,主目录会是我安装程序的地方吗?@Andy实际上,它并不像看上去那么复杂。在何处安装程序运行的数据并不取决于是手动安装程序还是使用软件中心安装程序。请注意,路径不是
/home/.program name
,而是
/home/user/.program name
。在Java中,使用
System.getProperty(“user.home”)
获取主目录。@程序存储在哪里与数据存储在哪里完全不同。将程序(JAR文件、资源等)放入
/usr/local/share/yourprogram
,将可执行的启动脚本放入
/usr/local/bin
。或者,将整个程序放入
/opt/yourprogram
@phihag:I's stand corrected,在
/home/user/
中有其他程序的数据,因此,如果我存储数据,看起来将是这样。但是,我仍然不知道在哪里安装实际的可执行文件,因为即使有根权限,我也无法写入您指定的路径suggested@Andy使用root权限,您可以在作为可写文件装载的每个文件系统上进行写操作。在一个普通的Ubuntu上,
sudomkdir/var/lib/yourprogram
工作得很好。如果你不能写信给,比如说,
/opt
,问一个新问题,说明为什么会这样。复制并粘贴一个终端会话(或提供一个终端会话的屏幕截图),以便重现您的问题。我确实在用Java制作GUI,但我似乎无法编写
/usr