2016-11-25 65 views
0

我对编程完全陌生,现在我正在做一个项目,我需要在java中读取特定的XML文件。我的代码是使用我需要的文件的绝对路径,但我必须将项目分发到某处。所需的XML文件不会在项目文件夹中,而是在另一个文件夹中,我将使用项目的JAR文件进行分发。如果我不知道用户在哪里放置我的程序和包含XML文件的文件夹,是否有可能获得该路径?有关java项目分发的问题

该程序应该在Windows上运行。

+0

露出它检索文件?您可以随时查找FileChooserDialog(或类似的东西),让用户指向文件。但你可以随时将你的jar文件分发到压缩包(zip)中,用xml – AxelH

+0

你需要在代码中向用户询问他们在哪里放置xml文件! –

+0

这正是您应该避免使用硬编码绝对路径的原因。如果文件位于jar外部,或者使用类资源的相对路径(如果xml位于jar文件中),则使用文件的相对路径。这个问题已经在这个网站上被多次询问和回答,并且您需要搜索这个网站来查看这些重复内容。 –

回答

0

你有不同的解决方案:

  • 传递文件的位置作为参数传递给main方法(如果你有一个main方法)
  • 设置system property与文件的位置(你可以做与所述-D选项上java命令,与语法-Dproperty=value
  • 设置环境变量(与在linux export命令)
  • 把文件中的类路径,并与getResourceAsStream
  • 访问从外部服务器是否使用一个接口(摆动或其他方式)通过HTTP
+1

别忘了环境变量'System.getenv(String)' –

+0

@CarlosHeuberger也添加了这个选项thx –