eclipse包结构中的路径解析

时间:2011-05-24 12:00:53

标签: java eclipse groovy xmlslurper

对于许多人来说,这是一个非常简单的问题,但对我来说这是一个很新的问题。 这是我日食的截图

enter image description here

当我运行此程序时,我得java.io.FileNotFoundException: queries.xml (The system cannot find the file specified)我尝试了../../../queries.xml,但这也无效。我真的不明白何时使用../,因为它意味着在dir中退后一步,在某些情况下它可以工作,任何人都可以解释这个吗?另外我如何在这里引用queries.xml。感谢

注意:我甚至可以在Linux机器上使用此代码

3 个答案:

答案 0 :(得分:2)

我认为它正在将您的代码编译到buildclasses文件夹中,并从那里运行...

您是否尝试过传统的Java方法:

def query = new XmlSlurper().parse( GroovySlurping.class.getResourceAsStream( '/queries.xml' ) )

假设构建步骤是将xml复制到构建文件夹中,我认为应该可以正常工作

我不使用Eclipse,所以不能100%确定......

答案 1 :(得分:1)

尝试

file = new File("src/org/ars/groovy/queries.xml");

要检查eclipse的实际工作目录,可以使用

File f = new File(".");
System.out.println(f.getAbsolutePath());

答案 2 :(得分:1)

您可以尝试使用属性文件来存储xml文件的路径。

这样您就可以将xml文件放在任何位置,只需更改属性文件即可。 这不需要更改/重新编译代码。

这意味着您只需要对属性文件的路径进行硬编码。

如果您不想硬编码属性文件的路径,则可以在服务器设置文件中启动时将其作为参数传递。 (在tomcat web.xml中)。每个服务器都有一个等效的安装文件,您可以在其中指定属性文件的路径。

或者,如果您不想使用属性文件,则可以在同一文件中指定xml的路径。

此链接将显示从属性文件中读取的示例 http://www.zparacha.com/how-to-read-properties-file-in-java/