Worldwind配置文档

Worldwind配置文档

前言:

本人在网络上各位大神的一阵阵忽悠了两天,迷迷糊糊了两天,终于在最后时刻静下心认认真真自己阅读官方的文档,完成了对  worldwind 的配置。

配置前的准备:

           我使用的机器情况:  x64 win7
           你需要配置好开发  JAVA 的环境,比如你必须安装好  JDK ,安装好 tomcat  服务器,配置好  JAVA_HOME 环境变量,需要有一个用得顺手的  IDE (我使用的是 eclipse ,建议下载  eclipse 官方提供的 J2EE  版本的 eclipse ,不输给  myeclipse ),另外建议你的 eclipse 里面安装好  tomcat 的插件,我用的是 tomcatPluginV33 ,具体的安装方法参照  google 搜索。
           下载 worldwind 的源码,抛一个地址,我用的是  worldwind-daily-832.1694.zip 这个版本。

关于JNLP

           唔,这里说明一下  JAVA 的一个新东西, JNLP 。个人理解,以前在网页上要运行  java 的小程序,就需要用到 applet ,但是前几年因为种种原因这个东西貌似不是很受欢迎。在  java 更新几个版本以后出了一个新东西——  JNLP 。这个玩意儿是给用户提供一个富客户端,即相当于在本地有一个跟服务器版本一致的  JAVA 应用程序,第一次运行的时候可能下载会比较慢,但是之后都不需要重新加载了,而当服务器段的版本更新以后,本地端重新开启的时候则会跟着更新版本。对用户来说,这玩意儿就相当于一个指向服务器段某个程序的快捷方式。再加上  JAVA 的跨平台性,在某种程度上来说,这种方式编写的应用程序具有比网页程序更强大的功能。而且,移植以前的代码到  web 版,使用这种方法也就是个写配置文件的事情。现在  oracle 官方建议都使用 JNLP 来配置  applet 。总结下来就是: JNLP 既能配置  applet ,也能配置好一个 web 版的应用程序,它承前启后,作用更强大,机制更安全。

           准备好上述的一切以后,我们就可以开始配置  worldwind 了。有个对我影响很深的老师曾经说过:当你做一件很复杂的事情的时候,先做简单的事情,再把简单的事情一个个拼起来就没那么难了,那我的教程也遵循这个步骤吧!

搞定一个简单的 worldwind程序

一、首先在你的 eclipse 环境里面新建一个  Java Project ,直接 finish  就可以了。比如: 
上图就是我刚新建好的  TeachWW 工程,里面什么都没有。
           二、解压你下载好的  worldwind 源代码,需要做的只是把里面的  src 以及几个 jar  包拷到你的工程文件夹下面。如图所示:           
           三、现在工程是处于错误的状态,解决的方法也很简单,将几个  jar 包加到你的工程里面就不会出错了,需要注意的是,你不需要把所有的包都加载进去,如图所示,你只需加入  Referenced Libraries 下面几个包就够了:
         worldwind  官方提供了很多使用他们  JDK 的例子,在 gov.nasa.worldwindx.examples  这个包下面,随便挑个  example 运行吧……然后就可以看到一个大大的地球出现在你的面前了  XD
如果成功的话,那就可以继续下一步的学习了,如果没成功的话,请一定成功了继续下面的步骤。
ps :因为这个工程包括了所有的例子,所以上述几个包都要加入到工程当中,但是其他时候有些不需要的包是不用加的。

worldwind jnlp配置

配置前小序曲

           在做 jnlp 之前,笔者希望你能先做一个  jnlp 的小例子,从直观上认识一下  jnlp ,这里附上我的测试过程以及代码。  swt 部分的程序我也就是网上随便找了个例子,勿喷。
           新建一个工程,结构如下:
ChatGUI 部分的代码如下:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ChatGUI extends JFrame implements ActionListener {
         Container container;
         JButton send; //  发送按钮
         JTextArea chatContent; //  聊天内容区
         JTextField sentence; //  聊天信息栏
         ChatGUI() {
                   super.setTitle("  聊天窗口  ");//  设置窗口标题
                   this.setSize(400, 300); //  设置窗口大小
                   container = this.getContentPane(); //  获得主窗口的内容面板
                   container.setLayout(new BorderLayout()); //  设置布局方式为  BorderLayout
                   JScrollPane centerPanel = new JScrollPane(); //  创建用于存放聊天记录的滚动面板
                   chatContent = new JTextArea(); //  创建存放聊天内容的多行文本输入区对象
                   centerPanel.setViewportView(chatContent); //  将文本区放入滚动面板
                   //  将滚动面板放到主窗口内容面板中央
                   container.add(centerPanel, BorderLayout.CENTER);
                   chatContent.setEditable(false); //  将文本区置为不可编辑状态
                   //  创建底部面板对象,存放聊天标签、聊天栏、发送按钮
                   JPanel bottomPanel = new JPanel();
                   sentence = new JTextField(20); //  创建文本输入行对象,存放每次的聊天内容
                   send = new JButton("  发送 "); //  创建按钮对象
                   bottomPanel.add(new JLabel("  聊天信息  ")); //  将标签添加到底部面板
                   bottomPanel.add(sentence); //  把聊天内容栏添加到底部面板上
                   bottomPanel.add(send); //  把发送按钮添加到底部面板上
                   container.add(bottomPanel, BorderLayout.SOUTH);//  将底部面板放在主窗口的底部
                   send.addActionListener(this); //  注册发送按钮的动作事件
                   sentence.addActionListener(this); //  注册聊天栏的动作事件
                   this.setVisible(true); //  显示主窗口
                   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//  关闭窗口时退出系统
         }
         public void actionPerformed(ActionEvent e) {
                   String str = sentence.getText(); //  获取聊天栏里的聊天信息
                   if (str != null && !str.equals("")) //  如果聊天内容不为空,则发送信息
                     chatContent.append("  本人 :  " + str + "\n");//  将本人发送的聊天信息追加到聊天内容区
                   else
                            chatContent.append("  聊天信息不能为空  \n");
                   sentence.setText(""); //  清空聊天栏里的内容
         }
         public static void main(String[] arg) {
                   new ChatGUI();
         }
}
运行成功后,请将程序打包成可以运行的  jar 包。再次确认 jar 包可以双击运行  XD 。比如我打包出来的文件叫:  charTest.jar

现在,新建一个文件,文件名是可以随意定的,但是因为为了方便操作,我把文件命名为  charTest.jnlp jnlp  的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!— 服务器版本 -->
<jnlp spec="1.0+" codebase="http://127.0.0.1:8080/TerryWeb" href="charTest.jnlp">
<!— 如果你是本地运行的话
<jnlp spec="1.0+" href="charTest.jnlp">
-->
    <information>
        <title>JNLP Test</title>
        <vendor>summer</vendor>
        <offline-allowed/>
    </information>
    <resources>
        <j2se version="1.6+"/>
        <jar href="charTest.jar" main="true"/>
    </resources>
    <application-desc
         name="world street applet" main-class="ChatGUI"
         width="800" height="500">
    </application-desc>
    <security>
      <all-permissions/>
    </security>
</jnlp>

根据自己的实际情况,修改  jnlp 里面的内容,如果你先不想测试服务器的版本的话,可以直接使用我注释里面的内容,另外注释掉服务器版本的部分。
           在运行服务器版本之前,我们还要使用  jarsigner 工具对这些 jar  包进行签名,至于怎么签名就  google ~~~
           这里我运行服务器版本的部分,我将  jar jnlp  文件部署到我  TerryWeb 的动态网页工程下,然后在浏览器里面输入:  http://127.0.0.1:8080/TerryWeb/charTest.jnlp 会提示下载,将下载好的  jnlp 文件打开,就可以看到和之前本地运行一样的窗口了。
         

配置jnlp版本的worldwind

           在有之前的实践作为基础的情况下,我们新建一个工程,这次,我们选取官方例子中的  gov.nasa.worldwindx.examples.view.ViewSwitch.java  这个例子,如图所示:
代码我就不贴了。老规矩,成功运行以后就打包成可运行的  jar 包,在打包的时候注意选择:
这样就会把依赖的  jar 包打包在和 jar  文件同一个目录下的一个文件夹下面了,运行打包好的  jar 包,发现不能运行, XDD ,这里就要说明一下了,  gluegen-rt.jar jogl-all.jar  这两个包有点像索引的意思,它们会根据你系统的不同选择不同的  jar 包,那么我们只要把其他平台下的  gluegen jogl  jar 包复制到该文件夹下就可以了,如图所示,
现在你的  jar 包应该就可以运行了……

           然后,跟之前一样,写一个  jnlp 文件,内容跟之前有所不同,但是是个程序员一定都能看懂,贴代码:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://127.0.0.1:8080/TerryWeb" href="ViewSwitch.jnlp">
    <information>
        <title>ViewSwitch</title>
        <vendor>summer</vendor>
        <offline-allowed/>
    </information>
    <resources>
        <j2se version="1.6+"/>
        <jar href="ViewSwitch.jar" main="true"/>
        <jar href="ViewSwitch_lib/jogl-all.jar"/>
        <jar href="ViewSwitch_lib/gluegen-rt.jar"/>
        <jar href="ViewSwitch_lib/worldwind.jar"/>
        <jar href="ViewSwitch_lib/worldwindx.jar"/>
    </resources>
<application-desc
name="world street applet" main-class="gov.nasa.worldwindx.examples.view.ViewSwitch"
         width="800" height="500">
    </application-desc>
    <security>
      <all-permissions/>
    </security>
</jnlp>

老规矩,如果要运行服务器版本,请先用  jarsigner 工具将所有的 jar 包签名一下,然后部署到你的服务器上,现在好  jnlp 文件以后,你就又可以看到大地球了!!
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值