Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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属性文件_Java - Fatal编程技术网

跨多个程序的Java属性文件

跨多个程序的Java属性文件,java,Java,所以我必须弄清楚如何跨7个不同的可执行jar文件使用一个.properties文件,这些文件最终都会以某种形式相互调用。我正在用ant编译一个dist文件夹,我会将属性文件放在该文件夹中,但我想知道,一旦启动第一个程序,是否可以从其他6个程序访问缓冲属性文件 Properties properties = new Properties(); BufferedInputStream stream = new BufferedInputStream(new FileInputStream("exam

所以我必须弄清楚如何跨7个不同的可执行jar文件使用一个.properties文件,这些文件最终都会以某种形式相互调用。我正在用ant编译一个dist文件夹,我会将属性文件放在该文件夹中,但我想知道,一旦启动第一个程序,是否可以从其他6个程序访问缓冲属性文件

Properties properties = new Properties();
BufferedInputStream stream = new BufferedInputStream(new FileInputStream("example.properties"));
properties.load(stream);
stream.close();
String sprache = properties.getProperty("lang");
但是我不知道如何从程序1到程序2访问相同的缓冲区


编辑:我想我希望有一种共享缓冲区的方法,但理论上我可以将属性文件的一个实例加载到每个jar文件中。

7个可执行jar在运行时将共享7个不同的JVM进程,所以正常(或是否正常)答案是:不。现在如果你愿意运行一个小型服务器应用程序,您可以使用RMI在它们之间进行同步。然而,在这一点上,您开始遇到这样一个问题:为什么它们不是在一个可以共享资源的容器中运行EJB。

7个可执行JAR在运行时将共享7个不同的JVM进程,所以正常的(或是否正常)答案是:不。现在如果您愿意运行一个小型服务器应用程序,您可以使用RMI在它们之间进行同步。但是,在这一点上,您开始遇到这样一个问题:为什么它们不是在可以共享资源的容器中运行EJB。

如果程序在单独的VM中运行,则您无法从一个程序访问另一个程序的对象,除非您使用某些进程间通信(IPC)功能(共享缓存、套接字通信等),但实现此类功能比简单地重新读取每个程序中的属性文件要复杂得多(甚至更慢)。

如果程序在单独的VM中运行,则无法从一个程序访问另一个程序的对象,除非使用某些进程间通信(IPC)功能(共享缓存、套接字通信等),但实现此类功能要复杂得多(甚至更慢)而不是简单地重新读取每个程序中的属性文件。

所有程序都同时运行吗?它们是只读取文件还是修改属性?如果它们修改文件,是出于同步原因吗?可能程序之间的套接字连接可以用于同步数据。所有程序都同时运行,并且都在上运行同一台机器,甚至来自同一个目录。所有程序都同时运行吗?它们是只读取文件还是修改属性?如果它们修改文件,是出于同步原因吗?也许程序之间的套接字连接可以用于同步数据。所有程序都同时运行,并且都在同一台机器上运行ne,甚至来自同一目录。好的,似乎是最简单的解决方案。谢谢帮助!好的,似乎是最简单的解决方案。谢谢帮助!