Проблема с использованием JNLP для запуска апплета с зависимостями Java3D
-
11-10-2019 - |
Вопрос
Как говорится в заголовке, в настоящее время пытается использовать JNLP в качестве средства запуска апплета с Java3d Devidence для любого пользователя, у которого, возможно, не установлен Jave3d в их систему. К сожалению, получение ошибки, связанной с значением «subapplet.classname», не найдено, в то время как апплет пытается запустить.
Эта проблема усугубляется тем фактом, что пример, поставляемый на веб -сайте java.net Fourbyfour, не работает и не работает с той же проблемой, когда класс не найден.
Java JNLP Веб -страница с четырьмя на четыре демонстрации:
Пытались с браузерами Firefox и IE без разницы ..
Образец кода, используемого на веб -сайте java.net:
<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
width=800 height=400
archive="http://download.java.net/media/java3d/webstart/test/j3d-examples.jar,
http://download.java.net/media/applet-launcher/applet-launcher.jar,
http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dcore.jar,
http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dutils.jar,
http://download.java.net/media/java3d/webstart/release/vecmath/latest/vecmath.jar,
http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar,
http://download.java.net/media/gluegen/webstart/gluegen-rt.jar">
<param name="codebase_lookup" value="false">
<param name="subapplet.classname" value="org.jdesktop.j3d.examples.four_by_four.FourByFour">
<param name="subapplet.displayname" value="Java 3D Four by Four Applet">
<param name="jnlpNumExtensions" value="1">
<param name="jnlpExtension1" value="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp">
<param name="progressbar" value="true">
<param name="noddraw.check" value="true">
</applet>
Решение
Примеры Java 3D Applet по -прежнему используют 'org.jdesktop.applet.util.jnlpappletlauncher'. Поскольку JRE-версия 1.6.0_21-B07 эта установка запуска не работает должным образом и больше не поддерживается.
Следуя учебному пособию Java: развертывание с тегом апплета 'h ttp: //download-llnw.oracle.com/javase/tutorial/deployment/applet/html.html Я переключился на апплет-tag и соответствующий jnlp-file На моих веб -страницах. Это требует JRE 6U10+. Следующий образец живой и может быть запущен отсюда:
<applet codebase="webstart/" width="1200" height="800" align="middle">
<param name="jnlp_href" value="propellerUniverseAPP1.0_J3D.jnlp">
</applet>
<?xml version="1.0" encoding="UTF-8"?>
<!-- InteractiveMesh.org TestSpace PropellerUniverse 1.0 Applet J3D -->
<jnlp spec="1.0+" codebase="http://www.interactivemesh.org/testspace/webstart/"
href="propellerUniverseAPP1.0_J3D.jnlp">
<information>
<title>PropellerUniverse 1.0</title>
<vendor>InteractiveMesh</vendor>
<homepage href="http://www.interactivemesh.org/index.html"/>
<description>PropellerUniverse 1.0</description>
<!-- icon href=""/ -->
</information>
<security> </security>
<update check="always" policy="always"/>
<resources>
<j2se version="1.6+"/>
<extension href="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp"/>
<jar href="propellerUniverse1.0.jar" main="true"/>
<jar href="jim_j3d-vrml97_v2.1.jar"/>
<jar href="orbitbehaviorinterim2.1.jar"/>
<property name="sun.awt.noerasebackground" value="true"/>
<property name="sun.awt.erasebackgroundonresize" value="true"/>
<property name="sun.java2d.noddraw" value="true"/>
</resources>
<applet-desc main-class="com.interactivemesh.j3d.testspace.canvas3d.PropellerUniverseJApplet"
width="1200" height="800" name="PropellerUniverse">
</applet-desc>
</jnlp>
Смотрите также: