Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Linux 符号链接如何影响persistence.xml的加载_Linux_Hibernate_Jpa_Persistence_Symlink - Fatal编程技术网

Linux 符号链接如何影响persistence.xml的加载

Linux 符号链接如何影响persistence.xml的加载,linux,hibernate,jpa,persistence,symlink,Linux,Hibernate,Jpa,Persistence,Symlink,在我的项目中,两个不同的persistence.xml在构建之后出现在两个不同的jar文件中。如果我使用如下命令运行应用程序 /jre/v1.7.0_21/bin/java -cp patch:/path_to_app_jars/*:. org.somepath.MainClass 其中一个已加载,但如果我使用符号链接运行它,另一个已达到峰值 bin/ -> path_to_app_jars /jre/v1.7.0_21/bin/java -cp patch:/bin/*:. org.s

在我的项目中,两个不同的persistence.xml在构建之后出现在两个不同的jar文件中。如果我使用如下命令运行应用程序

/jre/v1.7.0_21/bin/java -cp patch:/path_to_app_jars/*:. org.somepath.MainClass
其中一个已加载,但如果我使用符号链接运行它,另一个已达到峰值

bin/ -> path_to_app_jars
/jre/v1.7.0_21/bin/java -cp patch:/bin/*:. org.somepath.MainClass
无论我改变了什么,这个结果都是一致的。
这怎么可能呢?

我的猜测是,使用符号链接时,扩展的jar以不同的顺序返回,并且它正在从列出的第一个jar加载
persistence.xml

如中所述,使用目录通配符(*)时返回jar文件的顺序是不可预测的。为了始终首先加载相同的jar,解决方案是在类路径中显式列出jar,而不是使用目录通配符:

目录中的JAR文件在 未指定扩展类路径,可能因平台而异 平台,甚至有时在同一台机器上。A. 构造良好的应用程序不应依赖于任何特定的 秩序。如果需要一个特定的顺序,那么JAR文件可以 在类路径中显式枚举


这一定是因为这个,但它复制的一致性水平让我感到惊讶