我需要在Linux Environemnt中运行Java文件。
作为代码的一部分,Java文件需要加载XML文件
请告诉我如何将XML文件的路径提供给java文件?
我能提供这种方式吗? (假设java类文件和sample_config.xml在同一个文件夹中?
Util.load("/sample_config.xml");
请告诉我。非常感谢你。
答案 0 :(得分:2)
如果在同一文件夹中将"/sample_config.xml"
更改为"sample_config.xml"
,则"/sample_config.xml"
会在根目录(/
)中查找xml文件:
Util.load("sample_config.xml");
编辑:这只有在"sample_config.xml"
与执行Java进程的文件夹相同的情况下才有效。请参阅Qwe的答案。
答案 1 :(得分:1)
您可以简单地使用命令行参数。您的java main方法具有签名:
public static void main(String[] args)
您在命令行传递的任何内容都会通过args参数传入。所以,如果你这样做
java yourclass sample_config.xml
从命令行,您可以像这样访问它:
Util.load(args[0]);
答案 2 :(得分:1)
/
表示* nix中的根文件系统文件夹,因此/sample_config.xml
是根文件夹中的文件。
只需sample_config.xml
相对于启动程序的文件夹,而不是相对于类文件位置。
从Java类路径加载文件(以及类在类路径中)的最佳方法是通过资源加载机制。请点击此链接了解详情:URL to load resources from the classpath in Java
或者,如果您无法更改加载资源的方式,则需要使用Class.getResource获取资源的网址,并将路径传递给Util.load
。
这样的事情应该适合你的情况:
// getResource returns URL relative to this class
URL url = this.getClass().getResource("sample_config.xml");
if(url != null) // if file is not there url will be null
Util.load(url.getPath());