« 受付情報の扱い | トップページ | monsiaj を更新 »

2015年3月13日 (金)

Java 1.8 対応

java 1.7 がまもなくサポート終了になるらしいので,java 1.8 に移行した。

クライアント

今使っている monsiaj-20130418(改)は java 1.8 でも普通に動いた。
OpenDolphin の方は少し変更が必要であった。
  • java 1.7 では javafx を使うのに設定が必要であったが,java 1.8 では不要になった。
  • SchemaEditorImpl を javafx 8 に合わせて書き直した。
  • Platform.runLater で SchemaEditorImpl を呼び出す際に,Platform.setImplicitExit(false) にセットしておかないと,最初に SchemaEditorImpl を立ち上げて終了した後,JavaFX application thread も終了してしまって,以後 SchemaEditorImpl が立ち上がらなくなってしまう。SettingForMac で JFXPanel() しているところで設定するようにした。
    // necessary to initialize JavaFX Toolkit
    new JFXPanel();
    // JavaFX thread が SchemaEditor 終了後に shutdown してしまわないようにする
    Platform.setImplicitExit(false);
    
  • com.apple.eawt パッケージがビルド時に認識されない。
    open/dolphin/ui/SettingForMac.java:[3,30] エラー: パッケージcom.apple.eawt.AppEventは存在しません
    
    pom.xml の compilerArguments に -Dignore.symbol.file を付けるとビルドできるようになる。
    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>2.3.2</version>
       <configuration>
         <source>1.8</source>
         <target>1.8</target>
         <compilerArgument>-XDignore.symbol.file</compilerArgument>
       </configuration>
     </plugin>
    

サーバ

ソースの変更は特に必要なかった。
  • dolphin サーバ (ubuntu 12.04) に java 8 をインストールする手順。
    $ sudo aptitude install python-software-properties
    以下の新規パッケージがインストールされます:
      python-pycurl{a} python-software-properties unattended-upgrades{a}
      :
    python-software-properties (0.82.7.7) を設定しています ...
    
    $ sudo add-apt-repository ppa:webupd8team/java
    You are about to add the following PPA to your system:
     Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no ac
      :
    Press [ENTER] to continue or ctrl-c to cancel adding it
      :
    gpg:               読込み: 1  (RSA: 1)
    OK
    
    $ sudo aptitude update
      :
    $ sudo aptitude install oracle-java8-installer
      :
    $ ls -l /usr/lib/jvm
    lrwxrwxrwx  1 root root    20 10月 25  2012 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64/
    lrwxrwxrwx  1 root root    20  1月 17  2013 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64/
    drwxr-xr-x  7 root root  4096  2月 15 13:25 java-6-openjdk-amd64/
    drwxr-xr-x  3 root root  4096  1月 20  2013 java-6-openjdk-common/
    drwxr-xr-x  7 root root  4096  2月 15 13:24 java-7-openjdk-amd64/
    drwxr-xr-x  8 root root  4096  3月 12 20:32 java-8-oracle/
    
    $ sudo update-alternatives --config java
    alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。
    
      選択肢    パス                                          優先度  状態
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-8-oracle/jre/bin/java          1062      自動モード
      1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      手動モード
    * 2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      手動モード
      3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1062      手動モード
    
    現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 0
    update-alternatives: /usr/bin/java (java) を提供するために 自動モード で /usr/lib/jvm/java-8-oracle/jre/bin/java を使います。
    
    $ java -version
    java version "1.8.0_40"
    Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
    Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
    
    $ sudo reboot
    
  • リブート後ログを見ると java 1.8 でサーバが立ち上がっていることが確認できる。
    2015-03-12 20:42:46,863 DEBUG [org.jboss.as.config] (MSC service thread 1-6) Configured system properties:
    	[Standalone] =
         :
    	java.ext.dirs = /usr/lib/jvm/java-8-oracle/jre/lib/ext:/usr/java/packages/lib/ext
    	java.home = /usr/lib/jvm/java-8-oracle/jre
         :
    	java.runtime.name = Java(TM) SE Runtime Environment
    	java.runtime.version = 1.8.0_40-b25
    	java.specification.name = Java Platform API Specification
    	java.specification.vendor = Oracle Corporation
    	java.specification.version = 1.8
         :
    	java.version = 1.8.0_40
    	java.vm.info = mixed mode
    	java.vm.name = Java HotSpot(TM) 64-Bit Server VM
    	java.vm.specification.name = Java Virtual Machine Specification
    	java.vm.specification.vendor = Oracle Corporation
    	java.vm.specification.version = 1.8
    	java.vm.vendor = Oracle Corporation
    

« 受付情報の扱い | トップページ | monsiaj を更新 »

OpenDolphin」カテゴリの記事