Апплет не начнет использовать апплет-бегун из Intellij Idea

1

У меня есть апплет, который я могу нормально использовать в браузере, но когда я пытаюсь запустить его из конфигурации апплета в Intellij Idea, он не запускается, потому что он не может найти некоторые классы. Определение апплета на странице выглядит следующим образом (из startApp.jsp, который я использую для его запуска):

<applet mayscript archive="/library1.jar.pack.gz, /library2.jar.pack.gz, .." 
   code="com.company.library1.MainApplet" codebase="/"
   type="application/x-java-applet;version=1.6.0_20" align = "top" border = "0" height = "860" hspace = "0" width = "1250" vspace  = "0">
   <--some parameters-->        
</applet>

Класс не найден - MainApplet, который находится внутри library1.jar.pack.gz

Есть ли способ заставить его работать и с апплета, а не с веб-страницы? У меня нет другого исключения, кроме этого:

/usr/lib/jvm/java-7-oracle/bin/java -Djava.security.policy=/home/user/SW/idea-IU-133.696/bin/appletviewer.policy -Djnlp.packEnabled=true -Didea.launcher.port=7535 
-Didea.launcher.bin.path=/home/user/SW/idea-IU-133.696/bin -Dfile.encoding=UTF-8 -classpath 
/home/user/SW/idea-IU-133.696/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain 
sun.applet.AppletViewer http://localhost:8080/startApp.jsp
load: class com.company.library1.MainApplet not found.
java.lang.ClassNotFoundException: com.company.library1.MainApplet
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:219)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:633)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:793)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:722)
at sun.applet.AppletPanel.run(AppletPanel.java:379)
at java.lang.Thread.run(Thread.java:744)
Теги:
intellij-idea
applet
japplet

1 ответ

0

Applet Viewer в IntelliJ IDEA предназначен для запуска апплетов, над которыми вы работаете в своем проекте. Тем не менее, вы можете запустить его из библиотеки JAR. Глядя на первые четыре строки вашего вывода, я не вижу library1 на вашем пути к классу. Таким образом, java не может найти класс MainApplet. В диалоговом окне конфигурации Applet Viewer есть опция "Использовать путь к модулю". Установите это в модуль IDEA, у которого есть зависимость library1 в его пути к классам (т. library1 его списке зависимостей). Как предостережение, хотя я знаю, что он будет работать для JAR файла, я не уверен в файле Pack200. Мне было бы любопытно.

  • 0
    Спасибо за ответ. library1 указана в атрибуте archive тега апплета. Это работает так из браузера и в Intellij идея, я предоставляю URL, поэтому он должен быть таким же. MainApplet (library1) не является частью моего проекта, и у меня нет источников для него. У меня есть только упакованная банка.
  • 0
    Я подозреваю, что проблема в том, что IDEA не может обрабатывать формат Pack200 (т.е. * .pack.gz). Откройте запрос функции IDEA IDEA-73259 , чтобы подтвердить это. Я рекомендую вам проголосовать за него. Я не очень хорошо знаком с Pack200, поэтому я не уверен, что файл .pack.gz будет подписан, или файл будет подписан, а затем помещен в пакет. Если последнее, вы можете скачать его, распаковать его, создать «пустой» модуль IDEA, добавить распакованный jar как зависимость модуля, а затем использовать его как путь к классам модуля.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню