Где я могу найти значение JUNIT_CONTAINER в Eclipse? - PullRequest
3 голосов
/ 17 июля 2009

Мне нужно выяснить, по какому пути разрешен этот следующий путь:

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

Это не переменная classpath, которую можно найти до Window->Preferences, Java->Build Path->Classpath Variables.

Где я могу найти значение JUNIT_CONTAINER/4?

Спасибо

Ответы [ 3 ]

4 голосов
/ 17 июля 2009

A classpathentry типа "con" означает контейнер classpath .

Из Страница справки по путям классов Java :

запись, обозначающая контейнер classpath :
косвенная ссылка на структурированный набор проектов или библиотек.
Контейнеры classpath используются для ссылки на набор записей classpath, которые описывают сложную структуру библиотеки.
Как и переменные classpath, контейнеры classpath ( IClasspathContainer ) динамически разрешаются .
Контейнеры classpath могут использоваться различными проектами, в результате чего их записи пути разрешаются в разные значения для проекта.
Они также предоставляют метаинформацию о библиотеке, которую они представляют (имя, вид, описание библиотеки).

С контейнерами Classpath можно манипулировать с помощью методов 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() );
      }
   }
}
2 голосов
/ 17 июля 2009

Попробуйте Справка -> О платформе Eclipse -> Подробности конфигурации.

0 голосов
/ 17 июля 2009

Простое решение - это маленький тест JUnit.
Это должен быть тест, потому что Eclipse устанавливает только необходимые библиотеки для Systempath 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...