原地址: http://hi.baidu.com/xjx19860908/blog/item/786caf1eebb4f8ff1ad5760e.html
配置applet:
我用的是tomcat 。
首先配置tomcat:在tomcat的安装路径—conf—web.xml。打开xml这个配置文件,加上:
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
保存,这样tomcat就支持jnlp文件了。
当然也可以自己用ide建一个web project.
现在在tomcat的webapps文件夹下新建一个wwj的目录,并把worldwind.jar、jogl.jar、gluegen-rt.jar(这三个jar包可以从下载下来的SDK中找到)考到wwj目录下面。
还需要一个WWJApplet.jar的jar包,我不想从网上download这个jar包,因为download下来的不一定和自己用的SDK版本一样,所以我自己手动打了一个WWJApplet.jar的jar包,具体做法是:
1、SDK我解压在D:下,名称为wwj;
2、编译D:\wwj\src\gov\nasa\worldwind\examples\applet目录下的WWJApplet.java,生成WWJApplet.class,然后将这个文件打包:cmd 中,目录定位到D:\wwj\src,用如下命令:
jar -cvf WWJApplet.jar gov\nasa\worldwind\examples\applet\WWJApplet.class。这样就生成了WWJApplet.jar包了(SDK版本可能不一样,请注意)。
将做好的WWJApplet.jar包夜拷贝到webaaps下wwj目录中,并对wwj目录下的jar包签名,至于怎么样签名见下文。
接下来就是怎样编写jnlp文件了
相信大家也download了不少WWJApplet.jnlp文件,我也download了一个,把他放到wwj目录下面,双击运行,也能调出来。不过我想用我自己的下载好的jogl等文件,于是我做了一个修改,以下是修改的代码:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp
codebase="http://192.168.1.18:8080/wwj"//
这里你要改成你的服务器地址
href="WWJApplet.jnlp">
<information>
<title>World Wind Java Applet Demo</title>
<vendor>NASA</vendor>
<homepage href="http://192.168.1.18:8080"/
>
<description>World Wind Java Applet Demo</description>
<description kind="short">World Wind Java Applet Demo</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources os="Windows">
<property name="sun.java2d.noddraw" value="true"/>
</resources>
<resources>
<j2se href="http://java.sun.com/products/autodl/j2se
" version="1.6+" initial-heap-size="512m"
max-heap-size="512m"/>
<property name="sun.java2d.noddraw" value="true"/>
<jar href="WWJApplet.jar" main="true"/>
<jar href="worldwind.jar"/>
<jar href="jogl.jar"/>
<jar href="gluegen-rt.jar"/>
<!--<extension name="jogl"
href="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp"/
>--> //以前这里是默认用这个的,不过我现在注释了,用上面深红字体代码了
</resources>
<!-- Width and heigth are overwritten by the surrounding web page -->
<applet-desc
name="WWJ Applet"
main-class="gov.nasa.worldwind.examples.applet.WWJApplet"
width="800" height="600">
<param name="separate_jvm" value="true" />
</applet-desc>
</jnlp>
保存,启动tomcat,运行该jnlp文件,成功,如图:
最后一步就是把jnlp放入到网页中了,新建一个网页,加入以下代码:
<APPLET WIDTH = 100% HEIGHT = 100%>
<PARAM NAME = "jnlp_href" VALUE="WWJApplet.jnlp">
</center></APPLET>
如果不想放入到网页中,直接运行java程序,你只需要修改一下jnlp中的代码,如下:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0"
codebase="http://192.168.1.18:8080/wwj/
"
href="test.jnlp">
<information>
<title>World Wind Java Application Template</title>
<vendor>NASA</vendor>
<homepage href="http://192.168.1.18:8080"/
>
<description>World Wind Java Application Template</description>
<description kind="short">World Wind Java Application Template</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se href="http://java.sun.com/products/autodl/j2se
" version="1.6+" initial-heap-size="512m"
max-heap-size="512m"/>
<property name="sun.java2d.noddraw" value="true"/>
<jar href="worldwind.jar" main="true"/>
<jar href="worldwind.jar"/>
<jar href="jogl.jar"/>
<jar href="gluegen-rt.jar"/>
<!--<extension name="jogl"
href="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp"/
>-->
</resources>
<application-desc main-class="gov.nasa.worldwind.examples.ApplicationTemplate"/>
</jnlp>
然后新建一个网页,并在网页加如下代码:<a href="test.jnlp">hao kan ma </a>
保存,打开网页,单击链接就可以了。
注意:要运行的机器上,一定要有JRE,如果没有,则是不行的。
说白了就是网页上要执行一个jnlp文件,这个文件制定applet的入口,及所需的各种资源的位置。
以上是原文了,自己弄的时候出的几个问题:
1 applet 报 jar包未签名错误
需要用jarsigner.exe和keytool.exe两个命令,他们可以在jdk的bin下找到.
1. 先将你的class打包成jar 文件;如为leaderbird.jar
2. 使用cd 操作系统命令进行到当前所对应的jar文件所在的目录
3. 使用命令:
keytool -genkey -alias workkey -keystore workstore -validity
2000
得到与设置key;其中workkey为别名,workstore为key名称.其中2000代表有效天数为2000(天)
如果你想察看一下刚才生成的myKeystore文件的内容,可以使用下面这句话:
keytool -list -keystore workstore
4.
接下来按照提示进入输入相关信息 ,它将会提示你输入用户名、密码等,不用理它,按照提示随便输入即可,但一定要记住密码
5. 设置你本次要签名的那些jar文件;用下面的命令.
jarsigner
-keystore workstore leaderbird.jar workkey
注意与第三步的名称保持一致就可以了.
6.
为其他jar文件签名,重复第五步就可以了.
2 Bad version number in .class file
使用MyEclipse 6.5,在组织好测试用例之后,发现Java Compiler -> Compiler compliance level是5.0。之前一直在使用5.0的级别进行编译运行。当我切换Compiler compliance level到6.0以后,重新编译工程,运行测试用例,抛出异常:
ava.lang.UnsupportedClassVersionError: Bad version number in .class file
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.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 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:425)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
从第一行“java.lang.UnsupportedClassVersionError: Bad version number in .class file”,它说在类文件中发现了错误的版本号,我以为是因为启动了Project -> Build Automatically自动编译,每次编译没有修改类路径下类文件的版本号,于是禁用了Build Automatically,删除WebRoot\WEB-INF\classes下类文件,手动指定Compiler compliance level为6.0,重新编译,生成了类文件,再重新执行程序的时候,依然是上面的异常。
仔细琢磨了一下,原来MyEclipse 6.5的JRE是5.0的,虽然我设置了Compiler compliance level为6.0,其实依然是再5.0的JRE下进行编译的。
打开Installed JREs,重新Add一个JRE,指定一个JRE路径,使用自己安装的JDK 6.0,也就是JRE 6的环境进行编译,这时再运行测试用例,就能正常编译执行了。
3 no jogl in java.library.path
因为ww用的是opgl三维库,所以要加几个dll文件:
gluegen-rt.dll、jogl.dll、jogl_awt.dll、jogl_cg.dll
方法一:将这4个DLL文件复制到jre的bin目录下。
方法二:设置环境变量,在PATH 中加入这几个dll文件所在的目录。
方法三:在eclipse的Java 项目中导入原生库文件。操作方法是:在eclipse 的包资源管理器中,右单击项目名→导入→常规→文件系统→下一步→浏览→选择DLL文件所在目录→确定→勾选DLL文件→完成.(试过不行的)
方法四:将所有dll文件放在工程目录下。
方法五:可以在运行程序时候指定java.library.path为这几个dll所在的目录,在eclipse中,如果你打开Help菜单中About Eclipse Platform,然后在出现的对话框中选择configuration details按钮,你可以在接下来出现的对话框中找到java.library.path
方法六:配置java.library.path你还有另外一种办法,就是在最后运行程序的时候,从Run菜单中选择Run As..而不是Run As Java Application,填写好必要的其他参数以后打开Argument选项卡,然后在VM Argument输入框中填写该参数为dll文件的路径
方法七:将5个dll文件放在同一个文件里命名为swt--Native library location然后在工程属性中的库中,点击swt或者相关的一个jar文件,其中有一行是Native library location编辑,将其路径指向lib目录下的swt--Native library location文件即可。
方法八:同四,将所有dll文件放在同一个目录Native library location下,将这个文件放在工程的lib文件下,然后添加到库属性jre system library下的Native library location的路径中。
4 netscape.javascript.JSObject
这个类在 JRE 的 lib 目录下,plugin.jar 里面,拷过来放到项目里。
分享到:
相关推荐
3. **实现Applet类**:在Java代码中,创建一个继承自`javax.applet.Applet`的类,并在其中设置WorldWind的基本配置,如视口大小、地球模型等。例如: ```java public class MyWorldWindApplet extends Applet { ...
这个入门教程将带你了解Java Applet的基本概念、工作原理以及如何编写和部署。 1. **Java Applet简介** - Java Applet是Java平台的一个组件,它可以在Web浏览器中执行,为用户提供交互式和动态的Web内容。 - 由于...
本入门教程旨在帮助初学者理解和掌握JavaApplet的基本概念、开发环境设置以及实际编程技巧。 1. **JavaApplet基本概念** JavaApplet是一种小型的Java应用程序,它能够在Web浏览器中运行,提供丰富的用户界面和交互...
Java+Applet实例讲解(分为1和2两部分)、Java+Applet实例编程、java+Applet登录、JavaApplet教程.pdf、JAVA_applet应用实例.ppt、JavaApplet编程技巧实例专辑、javaapplet例子.doc、Applet类.doc等教程。...
很好的书籍,不看可惜了
本教程全面覆盖了JavaApplet的基础知识、实战技巧和常见问题,旨在帮助学习者深入理解并掌握这一技术。 1. **JavaApplet基本概念** - **Applet生命周期**:JavaApplet的生命周期包括初始化、加载、显示、暂停、...
JavaApplet是Java技术在早期Web开发中的一种重要应用,它允许开发者创建可以在网页中运行的小型程序。这些小程序能够增强交互性,提供动态内容,比如游戏、图表、动画等。JavaApplet运行在用户的浏览器上,由Java ...
在Applet中使用WorldWind需要Java API for OpenGL (JOGL) Applet Launcher。JOGL使得在Applet中创建和部署基于OpenGL的3D图形成为可能,无需客户端安装额外软件。示例代码展示了如何在Applet中部署WorldWind,包括...
### Java Application与Java Applet的区别 #### 一、概述 Java是一种广泛使用的编程语言,它以其平台无关性和安全性而著称。在Java中,有两种主要的应用类型:Java Application(Java应用程序)和Java Applet...
Java Applet是Java技术在早期Web开发中的一个重要应用,它允许开发者创建可在用户浏览器中运行的小型Java程序。这些小程序可以增强网页的功能,提供交互性,比如动态图形、动画、游戏甚至在线聊天等。本教程将带你...
Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者在浏览器中嵌入可执行的小程序,为用户提供动态交互的Web页面体验。这个简单的案例将带你深入理解Java Applet的基础概念、工作原理以及如何创建和...
### JavaApplet与JavaScript #### 6.1 JavaApplet ##### 6.1.1 JavaApplet概述 **Applet 类层次结构:** JavaApplet 的基础是 `java.applet.Applet` 类,它是从 `java.awt.Panel` 继承而来的一个特殊的图形组件。...
相比之下,Java Applet可以直接利用浏览器或Applet Viewer提供的图形用户界面资源,简化了界面设计过程。 六、权限限制与安全考量 Java Application在权限上较为宽松,可以执行读/写文件等操作,而Java Applet受到...