星期二, 6月 30, 2015

Java Web Start - ArrayIndexOutOfBoundException: 8

最近一連檢查到三部主機(Windows Server 2008 R2 64 bit)都有同樣的問題:首先是因為要裝 Jenkins Slave (JNLP),不是最新版 JRE 會有問題,所以升級到 Version 8 Update 45。升級後有的是在跑 JNLP 時出錯,有的更糟,在驗證 Java 安裝版本就不行了,錯誤都如標題,取代了我們期望的 Applet 簽署說明。





























首先,不論 IE 版本(8~11)為何,一律恢復原廠設定,再關閉 Server 上瀏覽器的增強式安全性設定 ESC;接著奇怪的解法來了(在 IE 設定):
  • 網際網路選項
  • 連線
  • LAN 設定
  • 自動設定
  • 自動偵測設定<-勾選
為何瀏覽器的代理伺服器設定這麼重要?因為 Java Console 的網路設定預設「依瀏覽器設定」,而 JNLP 或 Applet 的下載都是透過 Java Console 設定控制,這也提示了另一種解法,直接修改 Java Console 的網路設定。
至於 IE 的代理伺服器「自動偵測設定」為何沒有勾選?還不清楚。因為重新安裝了幾次乾淨虛擬機,或升級新版瀏覽器,或恢復出廠預設值,這裏總是在已勾選狀態的。

星期五, 6月 12, 2015

權限太多也不行?

要以 A 主機的使用者 u1 透過 SSH 連到 B 主機的使用者 u2 身分,有兩種方式:
  • login as u1 on A, ssh u2@B, password required.
  • login as u1 on A, generate key pair, save [A] /home/u1/.ssh/id_rsa.pub to [B] /home/u2/.ssh/authorized_keys, ssh u2@B, password NOT required.
但好玩的來了:如果 /home/u2/.ssh 的權限是 700 或 755 都可以免密碼,但 777 就不行了?如果 /home/u2/.ssh/authorized_keys 的權限是 400 或 700 也都可以免密碼,但 777 又不行?

星期四, 5月 28, 2015

Mac 上不了 5G 的 Wi-Fi?

因為公司的無線投影一定要上 5G 的 Wi-Fi,而我的 Mac 根本就掃不到那個基地台,困擾了好一陣子,今天終於下定決心要弄出來。爬了幾篇文,原來還有個「會隨時改變的國碼」?主要先參考這篇得知 Wi-Fi 的型號,再依這篇把國碼設到 X2,以免被各國的設備拉來拉去的,注意要先關閉 Wi-Fi ,等設好後重啟電腦再開 Wi-Fi,大功告成。
如果真實的國家界限也是這麼鬆散的,就世界大同?

錯誤的主機名稱解析拖慢網頁

有一個本機網頁要等很久,查了半天才知內含問題連結,只要主機名稱是
  • platform.linkedin.com
  • platform.twitter.com
的資源,都要等幾十秒才會逾時放棄。現在的解法,在 /etc/hosts 加上:
  • 127.0.0.1    platform.linkedin.com
  • 127.0.0.1    platform.twitter.com
大概縮短到一秒內就放棄了,所以會快很多。

ifup / ifdown not working?

在 Linux 執行以下的指令
  • ifconfig
藉由回應得知網路卡的名稱
  • eth0...
接著需要重啟該網路卡,以便套用新設定,其中一個指令為:
  • ifdown eth0
結果卻得到這樣的回應
  • usage: ifdown <device name>
原來用了多年的指令竟然改了?印象中在 Linux 的世界還是頭一遭,新的指令是:
  • ip link set eth0 down

星期日, 5月 17, 2015

在 CentOS 6 編譯 .NET 的程式

  1. 用 Mono,不要期待 Wine,一個一個套件再補太辛苦了。
  2. Mono 也不喜歡 CentOS,明明在 Ubuntu 或 Mint 都那麼好裝。但就算是 EPEL 都請出來,還是找不到 mono-complete,所以改這樣「yum install mono\*」,凡是 mono 開頭的套件都裝下去。
  3. 如此一來有了 xbuild.exe,但不被認可為執行檔,請將這句指令放在開機後自動執行:「echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register」。

星期五, 5月 08, 2015

Derby 資料庫的簡單瀏覽方法

不像輕量級的 SQLite 一個資料庫就是一個檔案,稍「重」些的 Derby 一個資料庫是一個目錄(假設在 /home/myName/myDb),可以使用 JDK 內建的工具 ij 下指令存取:
  • cd /home/myName
  • <JDK_HOME>/db/bin/ij
  • connect 'jdbc:derby:myDb;user=me;password=secret';
  • show tables;
  • describe <TableName>;
  • select * from <TableName>;
  • exit;