wwj jnlp配置

原地址: 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,如果没有,则是不行的。

 

 

 

以上是原文了,自己弄的时候出的几个问题:

 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 里面,拷过来放到项目里。

 

 

 

 

2 楼 qq3553174 2011-03-18   引用
编译D:/wwj/src/gov/nasa/worldwind/examples/applet目录下的WWJApplet.java,生成WWJApplet.class

编译不过啊。报错。
1 楼 zxloveff123 2011-01-19   引用
              关于往运行环境中添加dll文件的补充

当程序中调用web元素或嵌入网页时,会抛出异常如下:
Exception in thread "WebView UI" java.lang.UnsatisfiedLinkError: no webview32 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gov.nasa.worldwind.util.webview.WindowsWebViewJNI.<clinit>(WindowsWebViewJNI.java:23)
at gov.nasa.worldwind.util.webview.WindowsWebView$1.run(WindowsWebView.java:161)

注:运行gov.nasa.worldwind.examples.BrowserBalloons类,会抛上述异常,此类中使用了嵌入网页的气泡。

解决方法:
将world wind jdk 文件夹中的WebView32.dll(32为系统使用)或WebView64.dll(64位系统使用)添加到运行环境中,方式同“3 no jogl in java.library.path

”的操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值