Eclipse:获取项目名称作为VM参数?

时间:2012-05-02 13:43:02

标签: java eclipse configuration jvm-arguments

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

例如,如果从Configuration调用Project1类,它应该解析special/path/fileX,如果从Project2调用它,它应该解析{{1} }}

我已经尝试了using Eclipse's {project_name},但令人惊讶的是它被解析为由光标突出显示的项目,而不是当前类的父项目。

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

3 个答案:

答案 0 :(得分:2)

这是针对您描述的问题的解决方法,但我想这是一个更好的解决方案,因为它独立于Eclipse,并且很容易在生产中工作。

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

/my/file/from/classpath.txt

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

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

其中src是Java源文件夹。现在,您仍然可以使用JVM参数来覆盖它,或者在缺少上述内容时提供默认值。

答案 1 :(得分:0)

我认为最简单的方法是使用eclipse的运行配置。只需创建任意数量的配置,提供所需的所有JVM参数,并使用它们进行启动。这也将非常接近您在生产模式中要做的事情

答案 2 :(得分:0)

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

如果需要,您可以为每个环境提供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)