考虑一个需要为每个Eclipse项目解析不同配置文件的配置类。
例如,如果从Configuration
调用Project1
类,它应该解析special/path/fileX
,如果从Project2
调用它,它应该解析{{1} }}
我已经尝试了using Eclipse's {project_name}
,但令人惊讶的是它被解析为由光标突出显示的项目,而不是当前类的父项目。
任何想法如何在Eclipse Runtime中区分一个项目与另一个项目,最好是使用JVM参数?
答案 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)