繁体   English   中英

可运行的jar文件找不到资源

[英]Runnable jar file does not find resources

我创建了一个运行登录屏幕的jar文件。 输入用户的凭据时,它将使用XML文件来验证凭据。 我的jar文件似乎找不到此XML文件。 这是我的文件目录: 在此处输入图片说明

我的jar文件是这样创建的: 在此处输入图片说明

users.xml文件是这样加载的

URL url = getClass().getResource("/users.xml");
String path = url.getPath();
String loginQuery = "for $x in doc('"+ path +"')//User where ($x/Username='" + username +"') "
 + " and ($x/Password='" + password + "') return data($x/Name)";

当我运行它时,我的项目在eclipse上运行良好。 我不知道为什么我的罐子不工作

我认为您的包装有问题。 我刚刚编译了一个测试程序,显示了可以正常工作的东西:

mabi@terra ~ $ cat /tmp/test/Test.java
import java.net.URL;

public class Test {
    public static void main(String[] args) {
        Test instance = new Test();
        URL absDynRes = instance.getClass().getResource("/users.xml");
        if (absDynRes == null) {
            System.out.println("Absolute dynamic URL is null");
        } else {
            System.out.println("Got: " + absDynRes);
        }
    }
}

编译并运行:

mabi@terra ~ $ cd /tmp/test/ && javac Test.java 
mabi@terra /tmp/test $ jar cfe test.jar Test -C /tmp/test Test.class users.xml
mabi@terra /tmp/test $ java -jar test.jar
Got: jar:file:/tmp/test/test.jar!/users.xml

要么您的jar中没有文件,要么由getClass()返回的类驻留在另一个包含users.xml jar中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM