Вызвано: java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.Было указано

#java #cobertura

#java #cobertura

Вопрос:

Мы установили версию наших приложений (без каких-либо инструментов или cobertura jar, включенных перед созданием пакетов приложений).

После установки мы инструментировали весь jar с помощью cobertura и включили файл jar cobertura в java classpath. но при запуске приложения оно выдает ошибку ниже.

любой ввод действительно поможет, спасибо.

Версия Java «1.7.0_25»
версия cobertura 1.9.4.1

 Exception in thread "main" java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/HasBeenInstrumented
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.HasBeenInstrumented
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 13 more
  

Комментарии:

1. Как вы включаете Cobertura в путь к классу? Делает net/sourceforge/cobertura/coveragedata/HasBeenInstrumented.class существует в файле JAR, который вы включаете в путь к классу?

Ответ №1:

Вы должны добавить cobetura.jar для начальной загрузки классов с помощью -Xbootclasspath . Дополнительная информация: https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html Это необходимо сделать для того, чтобы загрузить классы cobetura, которые необходимы для загрузки ваших классов приложений.

Ответ №2:

Я смог избавиться от этой проблемы, запустив цель позднего пакета, поскольку он повторно компилирует и повторно упаковывает код без Cobertura.

Цели, которые я использую, следующие:

clean site package