ほとまるブログ

はてなダイアリーから移行

DebianにOracle JDK8 をインストールする(航海日誌の導入)

はじめに

艦これの「航海日誌」というのが気になって、配布ページを見たところLinuxでも動くらしい。
Javaなので。
で、OpenJDKじゃ動かないらしいので、Oracle JDKを導入wwww

環境

こんな環境

$ uname -a
Linux debian64 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u1 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.5 (wheezy)
Release:	7.5
Codename:	wheezy

手順

とりあえず、Oracleからjdkダウンロードしてくる
http://www.oracle.com/technetwork/java/javase/downloads/index.html
最新版は、Java SE 8u5 だった
tarボールを解凍

$ sudo tar xf jdk-8u5-linux-x64.tar.gz -C /usr/lib/jvm/.

Javaがいろいろ入ってしまっているので、設定を変更する

$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_05/bin/java" 10000
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_05/bin/javac" 10000
$ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_05/bin/javaws" 10000

設定しようとしたら、既にデフォルトになってた・・・
まぁいっかーwwww

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/jdk1.8.0_05/bin/java                10000     auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/jdk1.8.0_05/bin/java                10000     manual mode

Press enter to keep the current choice[*], or type selection number: 

同様に、

$ sudo update-alternatives --config javac
There is only one alternative in link group javac (providing /usr/bin/javac): /usr/lib/jvm/jdk1.8.0_05/bin/javac
Nothing to configure.
$ sudo update-alternatives --config javaws
There are 3 choices for the alternative javaws (providing /usr/bin/javaws).

  Selection    Path                                              Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/jdk1.8.0_05/bin/javaws                10000     auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/javaws   1061      manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/javaws   1060      manual mode
  3            /usr/lib/jvm/jdk1.8.0_05/bin/javaws                10000     manual mode

Press enter to keep the current choice[*], or type selection number: 

設定の確認

Javaのバージョンを確認しましょう

$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

問題なし

Chromeプラグインの設定

ついでに設定する

$ sudo mkdir /opt/google/chrome/plugins
$ sudo ln -sf /usr/lib/jvm/jdk1.8.0_05/jre/lib/amd64/libnpjp2.so /opt/google/chrome/plugins/

艦これ「航海日誌」の起動

公式からダウンロードしてくる
http://kancolle.sanaechan.net/
適当に解凍して

$ java -jar logbook.jar

ウィンドウが開いたけど、どうすんだこれwwww
プロキシ設定しないと動かないらしい。
というか、仕組みを理解してから動かせよ()

プロキシの設定

chromeの設定で、「change proxy settings...」を開く
HTTPを 
localhost:8888
に設定する。というか、これはシステムのプロキシ設定だな。

設定後、航海日誌起動->艦これログインする
よく分からんけど動いた

でも、これだと航海日誌が起動してないと、ネットに繋がらないので困る
艦これだけ、proxy経由にしたいぞと。
夕張「いろいろ試してみてもいいかしら?」
というわけで、試行錯誤。
結論としては、システムのproxyは設定しないで、chrome起動時に指定するようにした

起動スクリプト

使ったところ、航海日誌が多重起動すると死ぬので
起動時にプロセスを強制終了するようにした。
あと、航海日誌が起動後にすぐchromeを開くとproxyが無いと言われるのでウェイト追加した
原因が特定できてないけど、初回起動は失敗することがあるので何かタイミングが悪いのかもしれない。
現状は、初回起動で失敗したらもう一回起動させてる。(そのためのプロセス強制終了でもある)

$ cat ~/kancolle/kancolle.sh 
#!/bin/sh
pkill -9 -f "java -jar logbook.jar"
pkill -9 -f "chromium"
cd /home/hoge/kancolle/
java -jar logbook.jar &
sleep 5 
/usr/bin/chromium-browser --proxy-server="http=localhost:8888" --app="http://www.dmm.com/netgame/social/-/gadgets/=/app_id=854854/" &

ショートカットの作成

GNOME3は、デスクトップにショートカット作るのが面倒
でもあると便利なので適当に作成

$ cat ~/Desktop/kancolle.desktop 
#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=0.1
Name=艦これ 航海日誌
Comment=艦これツール
GenericName=logbook
Exec=/home/hoge/kancolle/kancolle.sh
Icon=/home/hoge/kancolle/ico.jpg
StartupNotify=true
Terminal=false
Type=Application
Categories=GTK;Network;
Name[en_US]=kancolle

おわりに

使ってみたら、便利過ぎるぞこれwwwwwwwwwwwwwwwww
今まで何をしていたのか!
これあったら、5-5とか捗りそう。
あとは、垢BAN対象になるかが気になるところ。
ソース公開してるし、変な通信はしてないと推測(プログラマだけど自分で確認しないw)
しばらく放置していたら、猫エラーが発生したのは偶然か、それとも・・・?
小心者なので、日常的には使わないで攻略時にちょっと使うくらいにしておこう。