Search code examples
javaeclipseconfigurationjvm-arguments

Eclipse: Get the project name as a VM argument?


Consider a configuration class which needs to parse a different config file for each Eclipse project.

For instance, If Configuration class is called from Project1, it should parse special/path/fileX, and if it is being called from Project2, it should parse special/path/fileY.

I've tried using Eclipse's {project_name}, but surprisingly it is being parsed to the project being highlighted by the cursor, not the parent project of the current class.

Any ideas how can I distinguish one project from another in Eclipse Runtime, preferably using JVM arguments?


Solution

  • This is a workaround to your described problem, but I guess it's a better solution as it's independent from Eclipse and will easily work in production too.

    Simply load the same file from the classpath, regardless which Project you're starting this from:

    /my/file/from/classpath.txt
    

    But put this file only in Project1 / Project2, such that the various files mutually exclude themselves according to your set-up:

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

    Where src are Java source folders. Now you can still use your JVM parameter to override this, or to provide a default if the above is missing.