zoukankan      html  css  js  c++  java
  • ubuntu 12.04 JDK和JVM配置,浏览器执行Applet

    (仅仅是记自己的行径,为以后再配置作参考。没有权威性。)
    我走了弯路,不知道jdk里边会包含jre,所以首先装了jre,其实可以不用装jre直接装jdk的,jdk是jre的超集。
     
    jre是java程序的运行环境(如带打开嵌有java程序的网页需要jre),如果自己不开发java程序的话,装jre就行了。
     
    (一)装jre
    1. 官网下载jre-7u21-linux-i586.rpm http://www.java.com/en/download/manual.jsp
    2. mkdir /usr/java, 将rpm软件包拷贝到该目录下。
    3. 安装程序包
        rpm -ivh jre-7u7-linux-i586.rpm
        要升级程序包,请键入:
       rpm -Uvh jre-7u7-linux-i586.rpm
    4. 安装完成,可删除rpm包。
    5. 配置环境变量,在/etc/profile文件末尾加上:
       export JAVA_HOME=/usr/java/jre1.7.0_21
       export JAVA_BIN=/usr/java/jre1.7.0_21/bin
       export PATH=$PATH:$JAVA_HOME/bin
       export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
       export JAVA_HOME JAVA_BIN PATH CLASSPATH
       我在~/.profile文件里也加入了上述内容。
    6. 验证。终端执行java -version,打印出相关版本信息,则安装成功。
     
    但是要在浏览器中显示带有Applet的网页,还需要两个步骤:
    1. 进入firefox的plugin目录下,将JRE的的一个插件文件链接到mozilla的plugin目录下(在命令行下(root权限)
     
      cd /usr/lib/firefox/plugins
      ln -s /usr/java/jre1.7.0_21/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin_oji.so
    chromium-browser浏览器同理。
    2. 我在这样做之后,还是不能打开具有Applet的网页。还需要一个东西:IcedTea-Web Plugin。
    打开ubuntu软件中心,搜索icedted-7-plugin,安装。装好了之后在火狐或者谷歌浏览器地址栏输入about:plugins,可以看见已经有IcedTea-Web Plugin这个插件了。(icedted-7-plugin会附带安装openjdk,安装在jdk所安装的目录下。我的是/usr/lib/jvm)
    其他设置:
    $ cd /usr/java/jre1.7.0_21/bin
    $ ls
    会看见有个ControlPanel
    执行:
    $ sudo ./ControlPanel
    会弹出java控制面板,可在安全选项卡进行相关设置。
    到这里打开具有Applet的网页,应该不会再显示“缺少必要的插件,请安装JVM”了。可以到官网提供的测试页面测试一下:http://java.com/zh_CN/download/testjava.jsp
     
    (但是我自己写的Applet程序,可以用Appletviewer打开,嵌入到浏览器中却不能正常显示,说是“未初始化小应用程序”。这一点尚未解决。)
    更新——已解决:
    以chromium-browser浏览器为例:
    在装了icedted-7-plugin这个之后,其实并不能解决问题,还需要一步
     ln -s /usr/lib/jvm/jdk1.7.0_21/jre/lib/i386/libnpjp2.so /usr/lib/chromium-browser/plugins
    这时候在浏览器地址栏中输入
    about:plugins
    会看到多了一个Java(TM)Java plug-in for NPAPI-based browsers.在插件管理里即使将icedted-7-plugin禁用掉,仍然能够执行Applet。可见icedted-7-plugin并不能解决根本问题。
    到现在为止,我的/usr/lib/chromium-browser/plugins目录下有

    IcedTeaPlugin.so libjavaplugin_oji.so libnpjp2.so

    这三个链接,它们的目录分别是:
    /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so
    /usr/lib/jvm/jdk1.7.0_21/jre/plugin/i386/ns7/libjavaplugin_oji.so
     
    /usr/lib/jvm/jdk1.7.0_21/jre/lib/i386/libnpjp2.so
     
    firefox同理。但是firefox的目录有点多,我都没搞清楚,自己试一下吧,将上述的三个.so文件链接到以下三个目录(不是一个目录下链接一个,是每个目录下都有三个.so文件。到底起作用的是哪一个或两个我也懒得去管啦):
    $ cd ~/.mozilla/plugins/
    $ cd /usr/lib/mozilla/plugins/
    $ cd /usr/lib/firefox/plugins
     
     
     
     
    (二)安装jdk
    如果装了jre,在/usr/java/jre1.7.0_21/bin目录下可以看见java可执行文件,所以可以用
    java HelloWorld
    命令执行已编译好的HelloWorld.class文件。但是将HelloWorld.java源程序文件编译成class文件,如下
    javac HelloWorld.java
    就需要安装jdk。jdk的bin目录下有java,javac,javadoc,appletviewer,jar等等。
    我是按照这篇文章安装jdk的:
    先去 Oracle下载Linux下的JDK压缩包,我下载的是jdk-7u4-linux-i586.tar.gz文件,下好后直接解压
     
    Step1:
    # 将解压好的jdk1.7.0_04文件夹用最高权限复制到/usr/lib/jvm目录里
    sudo cp -r ~/jdk1.7.0_04/ /usr/lib/jvm/
     
    Step2:
    # 配置环境变量
    sudo gedit ~/.profile
    在末尾加上:
    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_04
     
    然后保存关闭,使用source更新下
    $ source ~/.profile
     
    使用env命令察看JAVA_HOME的值
    $ env
    如果JAVA_HOME=/usr/lib/jvm/jdk1.7.0_04,说明配置成功。
     
    Step3:
    # 将系统默认的jdk修改过来
    $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_04/bin/java 300 
     
    输入sun jdk前的数字就好了
    $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_04/bin/javac 300 
     
    $ sudo update-alternatives --config java 
    $ sudo update-alternatives --config javac
     
    Step4:
    然后再输入java -version,看到如下信息,就说明改成sun的jdk了:
    java version "1.7.0_04"
    Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
    Java HotSpot(TM) Server VM (build 23.0-b21, mixed mode)
     
    (三)demo
    HelloWorld示例:
    public class HelloWorld
    { 
        public static void main(String[] args) 
        {  
            System.out.println("Hello World!"); 
        }
    }
    保存为HelloWorld.java(文件名必须与类名一致)
    编译:$ javac HelloWorld.java
    运行:$ java HelloWorld 输出
    Hello World!
    则表示jdk安装成功。
     
    Applet例子:
    import java.applet.Applet;
    import java.awt.Graphics;
    public class Welcome extends Applet
    {
        public void paint(Graphics g)
        {
            g.drawString("Welcome to Java!", 60, 25);
        }
    }
    保存为Welcome.java
    编译:javac Welcome.java
    产生Welcome.class。这个Welcome.class文件不能直接用
    java Welcome
    执行,因为Applet小应用程序里没有主函数main.
    所以,该这么做:
     
    新建一个html文件:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>载入applet</title>
    <h1><center><font color="red">JavaScript与Java Applet之间的通信</font></center></h1>
    <hr/>
    </head>
    <body bgcolor="orange">
    <center>
    <applet code="Welcome.class" name="testTxt" width="450" height="150">
          </applet>
        </center>
    </body>
    </html>
    随便保存为一个名字,如1.html。
    用浏览器打开1.html,或者在当前目录执行
    appletviewer 1.html
    即可打开Applet应用程序。
    (appletviewer 1.html可以执行我的程序,但是在浏览器中仍然不显示。不是jvm的关系。
     
    今天又看到一种方法,Applet还可以这么运行:
    新建HelloWorld.java:
     
    import java.awt.*;
    import java.applet.*;
    public class HelloWorld extends Applet
    {
    public void paint(Graphics g)
    {
    g.drawString("HelloWorld",30,30);
    }
    }
    //<applet code=HelloWorld width=200 height=200>
    //</applet>

    注意最后两行不能去掉,包括“//”必须保留。

    然后用不着编译啦,直接

    appletviewer HelloWorld.java

    就能弹出运行Applet的框,程序开始运行。

  • 相关阅读:
    quick-cocos2d-x + Lua 开发
    设置 Quick-Cocos2d-x 在 Windows 下的编译环境
    luaIDE选择
    接管radiobutton onclick 事件
    AlphaControls的使用方法
    Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
    delphi 正则表达式
    Windows server 2003 伪静态配置方法
    windows 2003 iis php
    Linux Shell系列教程之(十一)Shell while循环
  • 原文地址:https://www.cnblogs.com/duanguyuan/p/3055785.html
Copyright © 2011-2022 走看看