wwj jnlp配置

原地址: http://hi.baidu.com/xjx19860908/blog/item/786caf1eebb4f8ff1ad5760e.html

 

 

配置applet:

我用的是tomcat 。

首先配置tomcat:在tomcat的安装路径—conf—web.xml。打开xml这个配置文件,加上:

   
        jnlp
        application/x-java-jnlp-file
   

保存,这样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等文件,于是我做了一个修改,以下是修改的代码:


                   codebase="http://192.168.1.18:8080/wwj"// 这里你要改成你的服务器地址
            href="WWJApplet.jnlp">
       
            World Wind Java Applet Demo
            NASA
           
            World Wind Java Applet Demo
            World Wind Java Applet Demo
           
       

       
           
       

        
          
        

        
                              max-heap-size="512m"/>
           
           
           
           
           

                //以前这里是默认用这个的,不过我现在注释了,用上面深红字体代码了
        

        
                      name="WWJ Applet"
             main-class="gov.nasa.worldwind.examples.applet.WWJApplet"
             width="800" height="600">
           
        
      

保存,启动tomcat,运行该jnlp文件,成功,如图:

 

 

 

最后一步就是把jnlp放入到网页中了,新建一个网页,加入以下代码:



如果不想放入到网页中,直接运行java程序,你只需要修改一下jnlp中的代码,如下:


      codebase="http://192.168.1.18:8080/wwj/ "
      href="test.jnlp">
   
        World Wind Java Application Template
        NASA
       
        World Wind Java Application Template
        World Wind Java Application Template
       
   

   
       
   

   
                      max-heap-size="512m"/>
       
       
       
       
       
       
   

   

然后新建一个网页,并在网页加如下代码:hao kan ma

保存,打开网页,单击链接就可以了。

注意:要运行的机器上,一定要有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.(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

”的操作。

你可能感兴趣的:(杂)