对于许多人来说,这是一个非常简单的问题,但对我来说这是一个很新的问题。 这是我日食的截图
当我运行此程序时,我得java.io.FileNotFoundException: queries.xml (The system cannot find the file specified)
我尝试了../../../queries.xml
,但这也无效。我真的不明白何时使用../
,因为它意味着在dir中退后一步,在某些情况下它可以工作,任何人都可以解释这个吗?另外我如何在这里引用queries.xml。感谢
注意:我甚至可以在Linux机器上使用此代码
答案 0 :(得分:2)
我认为它正在将您的代码编译到build
或classes
文件夹中,并从那里运行...
您是否尝试过传统的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/