在 Eclipse 中哪里可以找到 JUNIT_CONTAINER 的值?

发布于 2024-07-27 17:19:29 字数 300 浏览 5 评论 0原文

我需要找出以下路径在哪条路径中得到解析:

<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>

Window->Preferences、Java->Build Path->Classpath Variables下找不到类路径变量。

在哪里可以找到 JUNIT_CONTAINER/4 的值?

谢谢

I need to find out, in which path this following path is resolved:

<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>

It's no classpath variabl to be found unter Window->Preferences, Java->Build Path->Classpath Variables.

Where can I found the value von JUNIT_CONTAINER/4?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

云淡月浅 2024-08-03 17:19:29

类型为“con”的classpathentry 表示类路径容器

来自 Java 类路径帮助页面

表示类路径容器的条目
对一组结构化项目或库的间接引用。
类路径容器用于引用一组描述复杂库结构的类路径条目。
与类路径变量一样,类路径容器 (IClasspathContainer动态解析
类路径容器可能被不同的项目使用,导致它们的路径条目解析为每个项目的不同值。
它们还提供有关它们所代表的库的元信息(库的名称、种类、描述。)

可以通过 JavaCore 方法getClasspathContainer 和 setClasspathContainer。


因此,在您的情况下,要真正确定解析的路径,您可以通过这些调用查询您自己的项目,如下所示 ClassPathUtils

case IClasspathEntry.CPE_CONTAINER:
{
   final IClasspathContainer container;

   try
   {
      container = JavaCore.getClasspathContainer( entry.getPath(), jproj );
   }
   catch( JavaModelException e )
   {
      Logger.getLogger().logError( e );
      continue;
   }

   if( container != null ) 
   {
      final IClasspathEntry[] containerEntries
        = container.getClasspathEntries();

      for( int j = 0; j < containerEntries.length; j++ )
      {
        resolved.add( containerEntries[ j ].getPath() );
      }
   }
}

A classpathentry of kind "con" means classpath container.

From Java Class Paths help page:

entry denoting a classpath container:
an indirect reference to a structured set of project or libraries.
Classpath containers are used to refer to a set of classpath entries that describe a complex library structure.
Like classpath variables, classpath containers (IClasspathContainer) are dynamically resolved.
Classpath containers may be used by different projects, causing their path entries to resolve to distinct values per project.
They also provide meta information about the library that they represent (name, kind, description of library.)

Classpath containers can be manipulated through JavaCore methods getClasspathContainer and setClasspathContainer.


So in your case, to be really sure about the resolved path, you could query your own project through those calls, like this ClassPathUtils

case IClasspathEntry.CPE_CONTAINER:
{
   final IClasspathContainer container;

   try
   {
      container = JavaCore.getClasspathContainer( entry.getPath(), jproj );
   }
   catch( JavaModelException e )
   {
      Logger.getLogger().logError( e );
      continue;
   }

   if( container != null ) 
   {
      final IClasspathEntry[] containerEntries
        = container.getClasspathEntries();

      for( int j = 0; j < containerEntries.length; j++ )
      {
        resolved.add( containerEntries[ j ].getPath() );
      }
   }
}
风筝有风,海豚有海 2024-08-03 17:19:29

尝试帮助 -> 关于Eclipse平台-> 配置详细信息。

Try Help -> About Eclipse Platform -> Configuration Details.

倥絔 2024-08-03 17:19:29

一个简单的解决方案是这个 JUnit 测试。
这一定是一个测试,因为 Eclipse 只将所需的库设置到类路径系统属性中:

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class TestApp {
    @Test
    public void bla() {
        System.out.println(System.getProperty("java.class.path"));
        assertTrue(true);
    }
}

A simple solution is this little JUnit test.
It must be a test, because Eclipse only sets the needed libraries to the classpath System Property:

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class TestApp {
    @Test
    public void bla() {
        System.out.println(System.getProperty("java.class.path"));
        assertTrue(true);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文