我需要在Linux环境中运行Java文件。如何在Linux中为java文件提供XML路径环境
由于部分代码Java文件需要加载一个XML文件
请告诉我如何可以提供XML文件到java文件的路径?
我可以提供这种方式吗? (假设Java类文件和sample_config.xml是在同一文件夹?
Util.load("/sample_config.xml");
请让我知道。非常感谢你。
我需要在Linux环境中运行Java文件。如何在Linux中为java文件提供XML路径环境
由于部分代码Java文件需要加载一个XML文件
请告诉我如何可以提供XML文件到java文件的路径?
我可以提供这种方式吗? (假设Java类文件和sample_config.xml是在同一文件夹?
Util.load("/sample_config.xml");
请让我知道。非常感谢你。
如果在同一文件夹改变"/sample_config.xml"
到"sample_config.xml"
,作为"/sample_config.xml"
将寻求在根目录下的XML文件(/
):
Util.load("sample_config.xml");
编辑:这将只有"sample_config.xml"
是在同一文件夹作为工作在的Java进程正在执行中。请参阅Qwe的答案。
您可以简单地使用命令行参数。您的Java的主要方法有签名:你通过在命令行上
凡是被通过args参数传递英寸所以,如果你在命令行做
java yourclass sample_config.xml
,你就可以访问它像这样:
Util.load(args[0]);
/
指根文件系统文件夹中的* nix,所以/sample_config.xml
是在根文件夹中的文件。
只是sample_config.xml
将相对于程序从哪里开始的文件夹,而不是相对于类文件位置。
从Java类路径加载文件(并且类在类路径中为)的最佳方式是通过资源加载机制。请按照此链接了解详细信息:URL to load resources from the classpath in Java
或者,如果您无法更改资源加载方式,则需要使用Class.getResource获取资源的URL并将路径传递到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());
+1实际阅读的问题。 – hmjd 2012-02-14 11:46:14
'Util.load( “sample_config.xml”)'不会是相对于类文件 – 2012-02-14 11:15:52
@Qwe,你是正确的。我误解了这个问题,并假设它意味着进程执行的目录。 – hmjd 2012-02-14 11:36:48