Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JUnit测试中判断Eclipse项目是否已打开?_Java_Eclipse_Junit - Fatal编程技术网

Java 如何从JUnit测试中判断Eclipse项目是否已打开?

Java 如何从JUnit测试中判断Eclipse项目是否已打开?,java,eclipse,junit,Java,Eclipse,Junit,我需要在Eclipse打开时从命令行运行Maven。由于这会混淆Eclipse,我将两者配置为使用不同的输出文件夹,Maven将其写入目标,EclipseM2e使用目标Eclipse。这很有效 但是在我的一个单元测试中,我需要加载属于项目一部分但不在类路径上的类。基本上,我构建自己的URL类加载器。现在,我有一个问题:要添加哪个类文件夹 如果项目是开放的,那么targeteclipse/classes是正确的选择,否则我应该使用target/classes 假设我知道Eclipse文件夹和wor

我需要在Eclipse打开时从命令行运行Maven。由于这会混淆Eclipse,我将两者配置为使用不同的输出文件夹,Maven将其写入目标,EclipseM2e使用目标Eclipse。这很有效

但是在我的一个单元测试中,我需要加载属于项目一部分但不在类路径上的类。基本上,我构建自己的URL类加载器。现在,我有一个问题:要添加哪个类文件夹

如果项目是开放的,那么targeteclipse/classes是正确的选择,否则我应该使用target/classes

假设我知道Eclipse文件夹和workspace文件夹。我如何从运行在Eclipse子进程而不是Eclipse插件中的Java代码判断哪些项目是开放的,哪些项目不是开放的

文件夹的存在不是一个好的标准,因为在我关闭项目时该文件夹不会被删除


[编辑]基本上我的问题是: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,但我的解决方案几乎可以工作:-