在Eclipse启动器中使用${project_loc}与${workspace_loc}环境变量遇问题求助
我之前也碰到过完全一样的问题!这俩变量的使用确实有不少容易踩的坑,尤其是你这种从外部导入的Maven项目,下面给你几个亲测有效的解决思路:
确保启动配置绑定了目标项目
${project_loc}的解析依赖于启动配置明确关联的项目,外部导入的Maven项目有时候不会自动绑定到启动器里。你可以打开「Run Configurations」,找到你的启动项:- 切换到「Main」标签页,检查「Project」下拉框是否选中了你的Maven项目(不是空的也不是错选其他项目);
- 如果这里是空的,手动选中你的项目,再保存配置。
不要依赖“选中项目”的运行方式
如果你习惯直接从启动器列表点运行,而没先在Package Explorer里选中对应项目,${project_loc}就会因为没有选中上下文而报错。要么每次运行前先选中项目,要么直接在启动配置里固定绑定项目(就是上面第一步的操作),这样不管选不选项目都能正确解析变量。改用明确指定项目的变量写法(推荐)
对外部导入的项目来说,${workspace_loc:/你的项目名称}比${project_loc}更可靠,它不需要依赖选中状态,直接指向工作空间里的指定项目路径。比如你的项目叫my-external-maven-proj,就写成:${workspace_loc:/my-external-maven-proj}这样能彻底避免“空选择”的问题。
刷新项目配置,让Eclipse同步索引
外部导入的Maven项目有时候Eclipse的路径索引没同步好,右键你的项目 → 「Maven」→「Update Project...」,勾选「Force Update of Snapshots/Releases」,刷新完成后再试试启动配置。验证变量是否正确解析
可以临时添加一个测试环境变量,比如DEBUG_PATH=${project_loc},然后在你的程序里打印这个环境变量(比如Java里用System.out.println(System.getenv("DEBUG_PATH"))),这样能快速排查是变量没解析,还是其他环节出了问题。
内容的提问来源于stack exchange,提问作者Mike Stoddart

