3

考虑一个配置类,它需要为每个 Eclipse 项目解析不同的配置文件。

例如,如果Configurationclass 被调用 from Project1,它应该 parse special/path/fileX,如果它被调用 from Project2,它应该 parse special/path/fileY

我尝试过使用 Eclipse 的{project_name},但令人惊讶的是,它被解析为光标突出显示的项目,而不是当前类的父项目。

任何想法如何在 Eclipse Runtime 中区分一个项目与另一个项目,最好使用 JVM 参数?

4

3 回答 3

2

这是您描述的问题的解决方法,但我想这是一个更好的解决方案,因为它独立于 Eclipse 并且也可以轻松地在生产中工作。

只需从类路径加载相同的文件,无论您从哪个项目开始:

/my/file/from/classpath.txt

但仅将此文件放在 Project1 / Project2 中,以便各种文件根据您的设置相互排除:

/Project1/src/my/file/from/classpath.txt
/Project2/src/my/file/from/classpath.txt

srcJava源文件夹在哪里。现在您仍然可以使用您的 JVM 参数来覆盖它,或者如果缺少上述内容,则可以提供默认值。

于 2012-05-07T13:04:42.407 回答
0

我认为最简单的方法是使用 eclipse 的运行配置。只需根据需要创建任意数量的配置,提供所需的所有 JVM 参数,然后使用它们来启动。这也将非常接近您将在生产模式下执行的操作

于 2012-05-07T13:02:39.110 回答
0

或者您可以转到 Eclipse 的已安装 JRE 并将配置设置为 JVMArgs,就像您在 prod 中的方式一样。

如果需要,您可以拥有每个环境的 JRE 的差异副本。

此外,如果从 IDE 运行,您可以获得 System.getProperty("user.dir") ,它应该是项目的根目录。

该系统属性可用于跟踪被调用者。更好的是,将 Installed JRE 的 JVM Args 设置为类似这样

-Dtheflaginprod=${project_loc}

project_loc = absolute path of the the project (/usr/projects/project1)
project_path = project name relative to the workspace  (/project1)
于 2012-05-13T02:40:17.703 回答