Java 如何从JUnit测试中判断Eclipse项目是否已打开?
我需要在Eclipse打开时从命令行运行Maven。由于这会混淆Eclipse,我将两者配置为使用不同的输出文件夹,Maven将其写入目标,EclipseM2e使用目标Eclipse。这很有效 但是在我的一个单元测试中,我需要加载属于项目一部分但不在类路径上的类。基本上,我构建自己的URL类加载器。现在,我有一个问题:要添加哪个类文件夹 如果项目是开放的,那么targeteclipse/classes是正确的选择,否则我应该使用target/classes 假设我知道Eclipse文件夹和workspace文件夹。我如何从运行在Eclipse子进程而不是Eclipse插件中的Java代码判断哪些项目是开放的,哪些项目不是开放的 文件夹的存在不是一个好的标准,因为在我关闭项目时该文件夹不会被删除Java 如何从JUnit测试中判断Eclipse项目是否已打开?,java,eclipse,junit,Java,Eclipse,Junit,我需要在Eclipse打开时从命令行运行Maven。由于这会混淆Eclipse,我将两者配置为使用不同的输出文件夹,Maven将其写入目标,EclipseM2e使用目标Eclipse。这很有效 但是在我的一个单元测试中,我需要加载属于项目一部分但不在类路径上的类。基本上,我构建自己的URL类加载器。现在,我有一个问题:要添加哪个类文件夹 如果项目是开放的,那么targeteclipse/classes是正确的选择,否则我应该使用target/classes 假设我知道Eclipse文件夹和wor
[编辑]基本上我的问题是:Eclipse必须将该信息存储在$workspace/.metadata或$Eclipse\u HOME/configuration中的某个位置。我需要查看哪个文件?我只需要使用一些配置参数,例如系统属性,告诉文件夹在哪里。有关使用Maven运行测试时如何传递系统属性的信息,请参阅。本页中的第一个示例显示如何将生成目录作为系统属性传递。文件[Workspace\u Home]/.metadata/.lock告诉您工作区已打开 工作区中项目的列表和设置位于[workspace\u Home]/.metadata/.plugins/org.eclipse.core.resources/.projects中 似乎打开的Java项目有一个文件夹[Workspace\u Home]/.metadata/.plugins/org.eclipse.core.resources/.projects/[Project\u name]/.index,而关闭的Java项目没有我仔细检查了一遍,似乎我错了
但是我刚刚检查了关闭的Java项目是否有一个文件:[Workspace\u Home]/.metadata/.plugins/org.eclipse.core.resources/.projects/[Project\u name]/org.eclipse.jdt.core/state.dat,而打开的项目没有这个文件。正如我所说的:我知道这个文件夹。如何检查项目是否已打开?好的。我似乎误解了这个问题。也许这只是因为如果某个项目是在Eclipse中打开的,那么让某个单元测试做一些不同的事情对我来说是完全荒谬的。你能解释一下你为什么需要这个吗?文件夹就是文件夹,项目是否在Eclipse中打开完全不相关。我的JUnit测试启动Jetty服务器,如果不同项目中的资源发生更改,我需要重新启动实例。我无法添加该项目,因为Eclipse会一直抱怨类结构的更改妨碍了部署。我可以使用JRebel,但我的解决方案几乎可以工作:-