前言
說來都是淚,百度谷歌了很久就是不得其道,我不知道是不是因爲這對於別人來說是一個很不是問題的問題,至少也是困擾我一整天了,廢話不多說直接開工。
運行環境
操作系統:OS X 10.11.1
瀏覽器:Safari 9.0.1
Java環境:JRE 1.8u92代碼
本文所需要到的一些測試代碼,由於是很基礎的東西,就不多說了,直接上代碼
// 很簡單一段Java applet的小程序代碼,就是畫一個紅色正方形出來
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;
public class FirstApplet extends JApplet
{
public void paint(Graphics g)
{
g.setColor(Color.RED);
g.fillRect(0,0,100,100);
}
}
// 很簡單的一段html,因爲接下來的操作需要用到jar包,所以說明一下
// code是指定類文件用的,根據自己的類名來寫就好,archive是指定jar
<!DOCTYPE html>
<html>
<body>
<applet codebase="." code="FirstApplet.class" archive="test.jar" name="TestApplet" width="400" height="300" hspace="0" vspace="0" align="middle"></applet>
</body>
</html>
- 編譯java文件生成jar包
首先把xxxx.java 和 xxxx.html(xxxx就是你自己取的名字)放在同一個文件夾,打開終端cd到該目錄,我放在了~/Sites目錄
cd ~/Sites
javac xxxx.java
jar -cvf xxxx.jar xxxx.class
這就生成好jar包了
- 生成密匙證書 併爲jar包簽名
1、產生密匙庫
keytool -genkey -keystore test.store -alias test
2、產生證書
//把一下命令寫在同一行,爲避免複製粘貼導致分行,請分別複製,務必保證
//以下命令塊是一個完整的
keytool -export -keystore test.store -alias test -file test.cert
3、用密匙庫爲jar包簽名
jarsigner -keystore test.store xxxx.jar test
4、查看一下是否簽名成功
jarsigner -verify -verbose -certs xxxx.jar
那麼證書的生成和代碼簽名都完成了,啓示之前我一直就是沒搞清楚,Safari對於Java web程序嚴格到必需簽名才能運行applet
- 接下來要配置http服務器
經過我的無數次試驗,直接雙擊打開本地的.html文件是沒辦法運行Java applet的,即使已經簽名,我不知道爲什麼,似乎是因爲不能配置信任站點
OS X很早以前就自帶Apache了,所以我們配置也很簡單,我就不再多說了,自己百度下,教程很多,我的配置是將用戶的DirectoryRoot目錄和系統的DirectoryRoot目錄分開
要訪問系統/Library/WebServer/Documents目錄的index.html文件可以通過三種方式進行訪問index 站點
http://localhost
http://127.0.0.1
http://(本機的內網或外網IP,當然前提是映射了80端口)
同樣的,要訪問用戶站點也是三種方式
此處"username"指的是你OS X的用戶名,引號不要
http://localhost/~"username"
http://127.0.0.1/~"username"
http://192.168.1.1/~"username"(本機的內網或外網IP,當然前提是映射了80端口,假設是192.168.1.1)
當然了,配置完apache還不算完,還需要一些列的……
- 爲站點添加信任 包括Safari和Java的信任
打開Apple偏好設置->Java 控制面板->安全選項卡->編輯站點列表
然後講你需要用於訪問applet的URL填寫進去比如
http://localhost/~bppleman/
http://www.javatester.org/installing.html
你可以添加多個
打開Safari訪問
http://localhost/~bppleman/
打開Safari偏好設置->安全性->確保啓用JavaScript、允許 WebGL、允許插件已打上勾->插件設置->選中Java->將你需要的網站設置爲始終允許
目前爲止大部分工作都已經完成了,如果對於apache的配置還不是很熟悉不願意折騰的話,可以先用
JavaTester
這個網站做實驗,只要能獲取到本機的JRE版本信息,那麼就說明本機的applet環境已經正確