我对Java很陌生,我几周前才开始编写代码,所以请耐心等待我:)
我想通过HTTP Post Request发送XML文件,我能够完美地模拟所有内容,问题是当我不创建XML,但实际上有一个XML,与我的类在同一级别上,我似乎无法使用它,无论我做什么,我放入了什么路径,我无法加载文件。
例如: 我有一个类caleld SendPostRequest.class,在同一目录下我有details.xml,我正在尝试:
getClass().getResource("details.xml"); // returns null
我已经尝试了所有其他组合,完整路径,或者从我通过System.getProperty("user.dir");
的路径拍摄而没有任何东西,它只是不会加载。
我确定我错过了一些非常愚蠢的东西,我正在使用Intellij,有没有这样做的捷径? 对于初学者,我只是想将xml加载到一个String中,只是为了将其打印出来以便看到它的工作......
提前多多感谢!
答案 0 :(得分:1)
您是否可以使用Maven构建?我问的原因是因为我最近遇到了同样奇怪的问题,我只是无法加载.xml文件,因为它没有包含在内置的jar中,但为什么呢?它应该是....
经过一些故障排除后,我最终进入了pom.xml
,结果证明文件扩展名为*.xml
的资源未包含在构建中。
<project>
...
<build>
...
<resources>
<resource>
...
<includes>
<include>**/*.xml</include>
</includes>
</resource>
在上面的片段中添加文件扩展名之后一切都很好,xml文件是在jar中构建的,我可以访问该资源。 不知道你是否属于这种情况,但是这个糟糕的小包括给我带来了几个小时...... ...
答案 1 :(得分:0)
getClass().getResource()
不是从文件系统路径加载资源,而是从类路径加载资源。确保该文件位于类路径中。
答案 2 :(得分:0)
如果你正在运行linux / unix,请确保你的java应用程序有权阅读它。您写道,您已经尝试通过完整路径加载此文件?
您可以尝试打印出当前工作目录,如下所示:
public class Test
{
public static void main(final String[] args)
{
final String dir = System.getProperty("user.dir");
System.out.println("current dir = " + dir);
}
}
然后尝试添加当前目录的相对路径以便在文件中读取。