java.lang.NoClassDefFoundError с внешними банками в Java-апплете - PullRequest
0 голосов
/ 17 августа 2011

У меня есть Java-апплет, который использует несколько внешних jar-файлов. В Eclipse проект работает нормально. Когда он экспортируется и запускается встраиваемым в HTML-файл, я получаю 22 исключения во время выполнения, похожих на ..

java.lang.RuntimeException: java.lang.NoClassDefFoundError: 
    mil/dcgs/mdf/webservice/ddms/ingest/CatalogIngestService

.. с различными классами. Когда я открываю экспортированную флягу, я не вижу файлов .class или любых других следов от внешней фляги.

HTML

HTML-код:

<html> 
<head> 
<title>DIB Applet</title> 
</head> 
<body> 
<applet 
    code="org.mitre.inception.Main.class" 
    archive="inception.jar" 
    WIDTH = "1020" 
    HEIGHT = "500">
Applet
</applet> 
</body> 
</html> 

.classpath

Мой .classpath выглядит следующим образом.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="lib" path="C:/Users/myUserName/Desktop/jars/dcgs-util.jar"/>
    <!-- more jars removed for space reasons as they look the same as above -->
    <classpathentry kind="output" path="bin"/>
</classpath>

Ответы [ 2 ]

1 голос
/ 18 августа 2011

В classpath упоминается dcgs-util.jar. Вероятно, это должно быть указано в атрибуте archive элемента applet. Возможно что-то вроде:

<html> 
<head> 
<title>DIB Applet</title> 
</head> 
<body> 
<applet 
    code="org.mitre.inception.Main.class" 
    archive="inception.jar,jars/dcgs-util.jar" 
    WIDTH = "1020" 
    HEIGHT = "500">
Applet
</applet> 
</body> 
</html> 

Это предполагает, что inception.jar находится в том же каталоге, что и HTML, и что dcgs-util.jar находится в подкаталоге jars каталога. где находится HTML.

0 голосов
/ 18 августа 2011

Попробуйте использовать следующий путь к классу.Я просто изменил порядок файлов jar.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="lib" path="C:/Users/myUserName/Desktop/jars/dcgs-util.jar"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>    
    <!-- more jars removed for space reasons as they look the same as above -->
    <classpathentry kind="output" path="bin"/>
</classpath>
...