为了解决VPN在非IE的浏览器运行,安装了jre及配置了chromium ,

chromium的默认安装目录:/usr/lib/chromium-browser

在/usr/lib/chromium-browser/plugins目录下执行: sudo ln -s /opt/jdk1.6.0_32/jre/lib/i386/libnpjp2.so

执行完成后,重新打开浏览器并打开http://java.com/zh_CN/download/testjava.jsp,以验证安装是否成功


以下为参考:


(一)装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

{

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:


java.awt.*

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

然后用不着编译啦,直接

appletviewer HelloWorld.java

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


2013-7-25更新:

如果浏览器不能正确显示Applet,可能是因为电脑上的jdk版本太多,在新立得软件管理器中将所有的jdk/jre/openjdk/Icedtea等等全部删除,新立得会自动删除其依赖项。删除完成之后,重装jdk。

我在新立得删除时保留了一个版本的jdk,删除多余的java版本后,访问嵌有Applet的页面,如http://java.com/zh_CN/download/testjava.jsp,Applet正常运行和显示。