如何在Linux中为java文件提供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的答案。

+0

'Util.load( “sample_config.xml”)'不会是相对于类文件 – 2012-02-14 11:15:52

+0

@Qwe,你是正确的。我误解了这个问题,并假设它意味着进程执行的目录。 – hmjd 2012-02-14 11:36:48

您可以简单地使用命令行参数。您的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()); 
+0

+1实际阅读的问题。 – hmjd 2012-02-14 11:46:14