我创建了一个运行登录屏幕的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上正常工作。我不知道为什么我的罐子不起作用
答案 0 :(得分:0)
我认为你的包装有问题。我刚编译了一个测试程序,显示的东西按预期工作:
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()
返回的类位于不同的jar中,然后是包含users.xml
的jar。