我有一个包含所有java类的UberJar,但是想用外部persistence.xml文件执行这个jar。根据规范,Hibernate(或任何其他JPA提供程序)在类路径中的任何META-INF文件夹中查找persistence.xml文件,但我无法使用UberJar。有任何想法吗? UberJar的类加载器是否仅限于jar文件的内容?
答案 0 :(得分:1)
从 -jar 命令行选项:
“ - jar”使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置
所以,似乎直接答案是否定的。
您可以编写自己的引导类,使用通常的java类路径(包括您的persistence.xml),然后引导UberJar,尽管您可能正在使用UberJar来避免这种情况......
答案 1 :(得分:0)
为了跟进我如何解决这个问题,我将persistence.xml文件和我的jar添加到类路径中,然后指定了主类。我的路径中仍然有未归档的类,这导致它们覆盖了jar设置。