OSDN Git Service

JDK1.7 to 1.8
authorOlyutorskii <olyutorskii@users.osdn.me>
Tue, 24 Mar 2020 06:19:43 +0000 (15:19 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Tue, 24 Mar 2020 06:19:43 +0000 (15:19 +0900)
src/main/java/jp/sfjp/jindolf/Jindolf.java
src/main/java/jp/sfjp/jindolf/JindolfJre18.java [moved from src/main/java/jp/sfjp/jindolf/JindolfJre17.java with 97% similarity]
src/main/java/jp/sfjp/jindolf/JreChecker.java
src/test/java/jp/sfjp/jindolf/JreCheckerTest.java

index 7bc65bc..3160699 100644 (file)
@@ -35,7 +35,7 @@ public final class Jindolf {
      * Jindolf のスタートアップエントリ。
      *
      * <p>互換性検査が行われた後、
-     * JRE1.7解除版エントリ{@link JindolfJre17}
+     * JRE1.8解除版エントリ{@link JindolfJre18}
      * に制御を渡す。
      *
      * @param args コマンドライン引数
@@ -46,7 +46,7 @@ public final class Jindolf {
         exitCode = JreChecker.checkJre();
         if(exitCode != 0) System.exit(exitCode);
 
-        exitCode = JindolfJre17.main(args);
+        exitCode = JindolfJre18.main(args);
         if(exitCode != 0) System.exit(exitCode);
 
         // デーモンスレッドがいなければ、(アプリ画面が出ていなければ)
@@ -15,7 +15,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import javax.swing.JOptionPane;
 
 /**
- * JRE1.7の利用が解禁されたJindolfエントリ。
+ * JRE1.8の利用が解禁されたJindolfエントリ。
  *
  * <p>起動クラスJindolfの下請けとしての機能が想定される。
  *
@@ -24,7 +24,7 @@ import javax.swing.JOptionPane;
  *
  * <p>各種診断を通過した後、JindolfMainに制御を渡す。
  */
-public final class JindolfJre17 {
+public final class JindolfJre18 {
 
     /** GUI環境に接続できないときの終了コード。 */
     public static final int EXIT_CODE_HEADLESS = 1;
@@ -72,7 +72,7 @@ public final class JindolfJre17 {
     /**
      * 隠しコンストラクタ。
      */
-    private JindolfJre17(){
+    private JindolfJre18(){
         assert false;
     }
 
@@ -200,7 +200,7 @@ public final class JindolfJre17 {
     /**
      * Jindolf のスタートアップエントリ。
      *
-     * <p>ここからJRE1.7の利用が解禁される。
+     * <p>ここからJRE1.8の利用が解禁される。
      *
      * <p>最終的に{@link JindolfMain}へ制御が渡される。
      *
index bbfedb6..662d1e0 100644 (file)
@@ -35,7 +35,7 @@ import javax.swing.JOptionPane;
 public final class JreChecker {
 
     /** Jindolfが実行時に必要とするJREの版。 */
-    public static final String REQUIRED_JRE_VER = "1.7";
+    public static final String REQUIRED_JRE_VER = "1.8";
 
     /** 互換性エラーの終了コード。 */
     public static final int EXIT_CODE_INCOMPAT_JRE = 1;
@@ -63,6 +63,7 @@ public final class JreChecker {
 
     /**
      * クラス名に相当するクラスがロードできるか判定する。
+     *
      * @param klassName FQDNなクラス名
      * @return ロードできたらtrue
      */
@@ -81,96 +82,116 @@ public final class JreChecker {
 
     /**
      * JRE 1.1 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.io.Serializable
      */
-    public static boolean has11Runtime(){
+    public static boolean has1_1Runtime(){
         boolean result = hasClass("java.io.Serializable");
         return result;
     }
 
     /**
      * JRE 1.2 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.util.Iterator
      */
-    public static boolean has12Runtime(){
+    public static boolean has1_2Runtime(){
         boolean result;
-        if(has11Runtime()) result = hasClass("java.util.Iterator");
+        if(has1_1Runtime()) result = hasClass("java.util.Iterator");
         else               result = false;
         return result;
     }
 
     /**
      * JRE 1.3 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.util.TimerTask
      */
-    public static boolean has13Runtime(){
+    public static boolean has1_3Runtime(){
         boolean result;
-        if(has12Runtime()) result = hasClass("java.util.TimerTask");
+        if(has1_2Runtime()) result = hasClass("java.util.TimerTask");
         else               result = false;
         return result;
     }
 
     /**
      * JRE 1.4 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.lang.CharSequence
      */
-    public static boolean has14Runtime(){
+    public static boolean has1_4Runtime(){
         boolean result;
-        if(has13Runtime()) result = hasClass("java.lang.CharSequence");
+        if(has1_3Runtime()) result = hasClass("java.lang.CharSequence");
         else               result = false;
         return result;
     }
 
     /**
      * JRE 1.5 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.lang.Appendable
      */
-    public static boolean has15Runtime(){
+    public static boolean has1_5Runtime(){
         boolean result;
-        if(has14Runtime()) result = hasClass("java.lang.Appendable");
+        if(has1_4Runtime()) result = hasClass("java.lang.Appendable");
         else               result = false;
         return result;
     }
 
     /**
      * JRE 1.6 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.util.Deque
      */
-    public static boolean has16Runtime(){
+    public static boolean has1_6Runtime(){
         boolean result;
-        if(has15Runtime()) result = hasClass("java.util.Deque");
+        if(has1_5Runtime()) result = hasClass("java.util.Deque");
         else               result = false;
         return result;
     }
 
     /**
      * JRE 1.7 相当のランタイムライブラリが提供されているか判定する。
+     *
      * @return 提供されているならtrue
      * @see java.lang.AutoCloseable
      */
-    public static boolean has17Runtime(){
+    public static boolean has1_7Runtime(){
         boolean result;
-        if(has16Runtime()) result = hasClass("java.lang.AutoCloseable");
+        if(has1_6Runtime()) result = hasClass("java.lang.AutoCloseable");
         else               result = false;
         return result;
     }
 
-    // TODO JRE1.8 対応
+    /**
+     * JRE 1.8 相当のランタイムライブラリが提供されているか判定する。
+     *
+     * @return 提供されているならtrue
+     * @see java.lang.AutoCloseable
+     */
+    public static boolean has1_8Runtime(){
+        boolean result;
+        if(has1_7Runtime()) result = hasClass("java.util.stream.Stream");
+        else               result = false;
+        return result;
+    }
 
     /**
      * JREもしくは<code>java.lang</code>パッケージの
      * 仕様バージョンを返す。
+     *
      * <ol>
      * <li>システムプロパティ<code>java.specification.version</code>
      * <li>システムプロパティ<code>java.version</code>
      * <li><code>java.lang</code>パッケージの仕様バージョン
      * </ol>の順でバージョンが求められる。
+     *
      * @return 仕様バージョン文字列。不明ならnull
      */
     public static String getLangPkgSpec(){
@@ -199,7 +220,9 @@ public final class JreChecker {
 
     /**
      * JREのインストール情報を返す。
-     * システムプロパティ<code>java.home</code>の取得が試みられる。
+     *
+     * <p>システムプロパティ<code>java.home</code>の取得が試みられる。
+     *
      * @return インストール情報。不明ならnull
      */
     public static String getJreHome(){
@@ -216,6 +239,7 @@ public final class JreChecker {
 
     /**
      * 非互換エラーメッセージを組み立てる。
+     *
      * @return エラーメッセージ
      */
     public static String buildErrMessage(){
@@ -277,19 +301,19 @@ public final class JreChecker {
     }
 
     /**
-     * JRE環境をチェックする。(JRE1.7)
+     * JRE環境をチェックする。(JRE1.8)
      *
      * <p>もしJREの非互換性が検出されたらエラーメッセージを報告する。
      *
      * @return 互換性があれば0、無ければ非0
      */
     public static int checkJre(){
-        if(has17Runtime()) return 0;
+        if(has1_8Runtime()) return 0;
 
         String message = buildErrMessage();
         STDERR.println(message);
         STDERR.flush();
-        if(has12Runtime()){
+        if(has1_2Runtime()){
             showErrorDialog(message);
         }
 
index e886be4..7cd2fc4 100644 (file)
@@ -58,7 +58,7 @@ public class JreCheckerTest {
     @Test
     public void testHas11Runtime() {
         System.out.println("has11Runtime");
-        assertTrue(JreChecker.has11Runtime());
+        assertTrue(JreChecker.has1_1Runtime());
         return;
     }
 
@@ -68,7 +68,7 @@ public class JreCheckerTest {
     @Test
     public void testHas12Runtime() {
         System.out.println("has12Runtime");
-        assertTrue(JreChecker.has12Runtime());
+        assertTrue(JreChecker.has1_2Runtime());
         return;
     }
 
@@ -78,7 +78,7 @@ public class JreCheckerTest {
     @Test
     public void testHas13Runtime() {
         System.out.println("has13Runtime");
-        assertTrue(JreChecker.has13Runtime());
+        assertTrue(JreChecker.has1_3Runtime());
         return;
     }
 
@@ -88,7 +88,7 @@ public class JreCheckerTest {
     @Test
     public void testHas14Runtime() {
         System.out.println("has14Runtime");
-        assertTrue(JreChecker.has14Runtime());
+        assertTrue(JreChecker.has1_4Runtime());
         return;
     }
 
@@ -98,7 +98,7 @@ public class JreCheckerTest {
     @Test
     public void testHas15Runtime() {
         System.out.println("has15Runtime");
-        assertTrue(JreChecker.has15Runtime());
+        assertTrue(JreChecker.has1_5Runtime());
         return;
     }
 
@@ -108,7 +108,7 @@ public class JreCheckerTest {
     @Test
     public void testHas16Runtime() {
         System.out.println("has16Runtime");
-        assertTrue(JreChecker.has16Runtime());
+        assertTrue(JreChecker.has1_6Runtime());
         return;
     }
 
@@ -118,7 +118,17 @@ public class JreCheckerTest {
     @Test
     public void testHas17Runtime() {
         System.out.println("has17Runtime");
-        assertTrue(JreChecker.has17Runtime());
+        assertTrue(JreChecker.has1_7Runtime());
+        return;
+    }
+
+    /**
+     * Test of has18Runtime method, of class JreChecker.
+     */
+    @Test
+    public void testHas18Runtime() {
+        System.out.println("has18Runtime");
+        assertTrue(JreChecker.has1_8Runtime());
         return;
     }