1

所以我必须弄清楚如何在 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 文件中。

4

2 回答 2

1

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

于 2013-07-19T13:11:45.610 回答
0

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

于 2013-07-19T13:08:06.797 回答