所以我必须弄清楚如何在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文件中。
答案 0 :(得分:1)
如果程序在不同的VM中运行,则除非使用某些进程间通信(IPC)功能(共享缓存,套接字通信等),否则无法从另一个程序访问一个程序的对象,但实现此类功能是比简单地重新读取每个程序中的属性文件要复杂得多(甚至更慢)。
答案 1 :(得分:0)
7个可执行jar将在运行时共享7个不同的JVM进程,所以正常(或者说那个理智?)的答案是:no。现在,如果您愿意运行小型服务器应用程序,则可以使用RMI在它们之间进行同步。但是,在那时,您开始遇到这样的问题:为什么它们不是在可以共享资源的容器中运行的EJB。