Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

第 1 章 Java 14

目錄

1.1. JVM
1.1.1. CentOS 8 Java 14
1.1.2. 安裝 Java 6
1.1.2.1. HeapDumpOnOutOfMemoryError
1.1.3. java-1.8.0-openjdk
1.1.4. docker 環境
1.1.5. java - Launches a Java application.
1.1.5.1. java 9~11
1.1.5.2. -verbose:class 顯示載入jar檔案
1.1.5.3. java.io.tmpdir
1.1.5.4. 顯示版本號
1.1.5.5. 列出java模組
1.1.6. jar
1.1.7. jdeps - Java class dependency analyzer.
1.1.8. JShell
1.1.8.1. /help 顯示幫助信息
1.1.8.2. 退出命令
1.2. System
1.2.1. user.dir
1.2.2. java.io.tmpdir
1.2.3. 打印當前 Java 檔案的預設編碼
1.2.4. 自定義
1.2.5. System.in 標準輸入(Stdin)
1.3. exec 運行shell
1.4. 類型
1.4.1. var 本地變數類型推斷
1.4.2. Integer
1.4.2.1. 前面補零
1.4.3. String
1.4.3.1. 查找字元重現的位置
1.4.3.2. 行數統計
1.4.3.3. 複製字元串
1.4.3.4. 隨機字元串
1.4.3.5. 字元串替換處理
1.4.3.5.1. 正則表達式查找與替換
1.4.3.5.2. 利用正則快速轉換時間格式
1.4.3.6. substring
1.4.3.7. string to timestamp
1.4.3.8. String.strip
1.4.3.9. Ascii
1.4.3.10. 字元串處理,刪除中文以外的字元
1.4.3.11. 取出字元串中的中文字元
1.4.4. 類型轉換
1.4.4.1. Long to String
1.4.5. Date
1.4.5.1. SimpleDateFormat
1.4.5.2. Timestamp
1.4.5.3. TimeZone
1.4.5.4. String to Date
1.4.5.5. 比較兩個日期與時間
1.4.5.6. Calendar
1.4.5.7. getToday
1.4.5.8. Yesterday
1.4.5.9. ISO 8601
1.4.5.10. LocalDateTime
1.4.5.11. ZonedDateTime
1.4.6. Array
1.4.6.1. for each
1.4.6.2. Array to String
1.4.6.3.
1.4.7. float
1.4.8. double
1.4.8.1. String to double
1.4.9. BigDecimal
1.4.9.1. Convert BigDecimal Object to double value
1.4.9.2. 去除末尾多餘的0
1.4.9.3. 禁用科學計數法
1.4.9.4. 移動小數點位置
1.4.10. StringBuffer
1.4.11. enum
1.4.12. byte 類型
1.4.12.1. string2byte
1.4.12.2. byte[] to String
1.4.12.3. BigInteger2byte
1.4.12.4. int to byte array
1.4.12.5. byte array to int
1.4.12.6. byte2char
1.4.12.7. longToByte64
1.4.12.8. byte64ToLong
1.4.12.9. short2byte
1.4.12.10. byte8ToDouble
1.4.12.11. byte4ToFloat
1.4.12.12. 無符號 byte
1.4.12.13. byte to hex
1.4.12.14. byte[] to hex
1.4.12.15. 連接兩個 byte[]
1.4.12.16. List<Byte> to byte[]
1.5. Collection
1.5.1. 靜態 List
1.5.2. ArrayList
1.5.2.1. ArrayList to String
1.5.2.2. Array to List
1.5.2.3. List to Array
1.5.3. Set 轉為 List
1.5.4. List.of()
1.5.5. List.copyOf()
1.5.6. ArrayList forEach
1.5.7. ArrayList stream()
1.5.8. Set.of()
1.5.9. Collection to Array
1.5.10. ArrarList 轉換為 string[]
1.5.11. string[] 轉換為 ArrarList
1.5.12. ArrayList 轉換為 string
1.5.13. string 轉換為 ArrayList
1.5.14. String[] to List
1.6. Map
1.6.1. 初始化
1.6.2. static map
1.6.3. HashMap
1.6.3.1. 遍歷 HashMap
1.6.3.2. 遍歷map中的鍵
1.6.3.3. 遍歷map中的值 
1.6.3.4. 通過鍵取值
1.6.3.5. 使用 Iterator 遍歷 HashMap
1.6.4. LinkedHashMap
1.6.5. Map forEach
1.7. Queue
1.8. Stream
1.8.1. Stream.of
1.8.2. Stream.ofNullable
1.8.3. filter
1.8.4. map
1.8.5. limit/skip
1.8.6. sorted
1.8.7. distinct
1.8.8. forEach
1.8.9. count
1.8.10. collect
1.8.11. takeWhile 和 dropWhile
1.8.12. List to Stream
1.8.13. 混合使用的例子
1.9. Optional
1.9.1. of() 為非null的值創建一個Optional。
1.9.2. ofNullable() 為指定的值創建一個Optional,如果指定的值為null,則返回一個空的Optional。
1.9.3. isPresent 如果值存在返回true,否則返回false。
1.9.4. ifPresent() 如果Optional實例有值執行 lambda 表達式
1.9.5. get() 返回值
1.9.6. orElse 如果有值則將其返回,否則返回指定的其它值。
1.9.7. orElseGet與orElse方法類似,區別在於得到的預設值從 Supplier 返回。
1.9.8. orElseThrow 如果有值則將其返回,否則拋出supplier介面創建的異常
1.9.9. map() 方法用來對Optional實例的值執行一系列操作
1.9.10. flatMap()
1.9.11. filter() 通過傳入限定條件過濾Optional值
1.9.12. stream()
1.9.13. or()
1.9.14. example
1.10. Network
1.10.1. URL
1.10.2. java.io.tmpdir
1.11. JDBC
1.11.1. 安裝 JDBC 包
1.11.2. MySQL
1.11.3. Oracle
1.11.3.1. SID
1.11.3.2. SERVICE_NAME
1.11.3.3. TNS
1.11.3.3.1.
1.11.3.4. Oracle RAC Cluster
1.11.3.5. Oracle JDBC Demo
1.11.4. FAQ
1.11.4.1. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
1.11.4.2. Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
1.12. Util
1.12.1. Properties 處理 *.properties 檔案
1.12.1.1. 打開 properties 檔案
1.12.1.1.1. 檔案方式打開
1.12.1.1.2. 輸入流
1.12.1.2. propertyNames()
1.12.1.3. keySet()
1.12.1.4. entrySet()
1.12.1.5. 方法中返回 Properties
1.12.1.6.
1.12.1.7. getResourceAsStream()
1.12.1.8. store
1.12.1.9. 實現國際化
1.12.2. Logging
1.12.2.1. console
1.12.3. BASE64
1.12.4. Locale 國際化
1.12.5. ResourceBundle
1.12.6. Scanner
1.12.7. UUID
1.12.8. Arrays.equals 判斷兩個數組是否相等
1.12.9. Random 隨機字元串
1.12.9.1. 指定隨機數範圍
1.12.10. ArrayBlockingQueue
1.12.11. CRC32
1.12.12. FutureTask
1.13. IO
1.13.1. 取出檔案名中的副檔名
1.13.1.1. getAbsolutePath() 獲取絶對路徑
1.13.1.2. 創建目錄 mkdir()
1.13.2. 臨時檔案
1.13.3. FileWriter 文本寫入檔案
1.13.4. BufferedWriter
1.13.5. inputStream.transferTo()
1.13.6. InputStreamReader
1.13.7. 獲得 Resource 下檔案路徑
1.13.8. PrintWriter
1.13.9. OutputStreamWriter
1.13.10. FileOutputStream
1.13.11. FileInputStream
1.13.12. Scanner
1.13.13. 二進制檔案
1.13.13.1. 理解二進制檔案
1.13.13.2. byte 類型
1.13.13.3. boolean 布爾型
1.13.13.4. Long 型
1.13.13.5. chat 類型
1.13.13.6. UTF 字元串
1.13.13.7. Short 類型
1.13.13.8. float 單精度浮點類型
1.13.13.9. double 數據類型
1.13.13.10. 二進制檔案操作演示
1.13.13.10.1. 所有類型演示一遍
1.13.13.10.2. 檢查檔案是否是 png 檔案
1.14. Reflection 反射
1.14.1. 獲得所有變數
1.14.2. 批量賦值
1.14.3. 方法操作
1.14.3.1. 獲得所有方法
1.14.3.2. set/get 方法
1.14.3.3. static 方法調用
1.15. Thread 綫程
1.15.1. 實現非同步執行
1.15.2. 繼承 Thread 類實現多綫程
1.15.3. 實現 Runnable 介面
1.15.4. 綫程同步
1.16. java 腳本引擎
1.16.1. Maven
1.16.2. Helloworld
1.16.3. 運行腳本檔案
1.16.4. 變數傳遞
1.16.5. 全局變數與局部變數定義
1.16.6. 調用腳本中的函數或方法
1.16.7. 腳本編譯
1.16.8. jjs - Invokes the Nashorn engine.
1.17. Crypto
1.17.1. MD5
1.17.2. AES
1.17.3. AES/CBC/PKCS5PADDING
1.17.4. DES
1.18. java.security
1.18.1. 列出 Java 支持的數字摘要算法
1.18.2. 計算檔案的 MD5,SHA 等 HASH 值

1.1. JVM

1.1.1. CentOS 8 Java 14

安裝 jre

		
[root@localhost ~]# dnf install java-latest-openjdk		
		
		

安裝 jdk

		
[root@localhost ~]# dnf install java-latest-openjdk-devel
		
		

預設是 jdk1.8,使用 alternatives 切換 java 預設版本為 java 14

		
[root@localhost ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)


[root@localhost ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           java-latest-openjdk.x86_64 (/usr/lib/jvm/java-14-openjdk-14.0.2.12-1.rolling.el8.x86_64/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el8_2.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 1


[root@localhost ~]# java -version
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment 20.3 (build 14.0.2+12)
OpenJDK 64-Bit Server VM 20.3 (build 14.0.2+12, mixed mode, sharing)		
		
		

1.1.2. 安裝 Java 6

解壓

chmod +x jdk-6u1-linux-i586.bin
./jdk-6u1-linux-i586.bin
輸入"yes"回車

mv jdk1.6.0_01 /usr/local/
ln -s /usr/local/jdk1.6.0_01/ /usr/local/java
		

/etc/profile.d/java.sh

例 1.1. /etc/profile.d/java.sh

################################################
### Java environment by neo
################################################
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin:/usr/local/java/jre/bin
export CLASSPATH="./:/usr/local/java/lib:/usr/local/java/jre/lib:/usr/local/memcached/api/java"
export JAVA_OPTS="-Xms128m -Xmx1024m"
		

1.1.2.1. HeapDumpOnOutOfMemoryError

JAVA_OPTS = "$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
			

如果針對Tomcat可以在catalina.sh加入

if [ "$1" = "debug" ] ; then
JAVA_OPTS = "$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
			

1.1.3. java-1.8.0-openjdk

# yum install -y java-1.8.0-openjdk		
		

1.1.4. docker 環境

在docker中運行java

		
neo@MacBook-Pro ~ % docker pull openjdk:12-jdk		
		
		
		
docker run -it openjdk:12-jdk /bin/jshell		
		
		
		
docker run -it openjdk:12-jdk /bin/bash
root@44d1d18351a8:/# java -version
		
		

1.1.5. java - Launches a Java application.

1.1.5.1. java 9~11

直接使用 java 命令運行 *.java 檔案

	
			
java netkiller.java		
			
			

1.1.5.2. -verbose:class 顯示載入jar檔案

			
# java -verbose:class hello
[Opened /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Object from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.Serializable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Comparable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.CharSequence from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.String from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.AnnotatedElement from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.GenericDeclaration from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Type from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Cloneable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.System from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Throwable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Error from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ThreadDeath from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Exception from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.RuntimeException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.SecurityManager from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.ProtectionDomain from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.AccessControlContext from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.SecureClassLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ReflectiveOperationException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassNotFoundException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.LinkageError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.NoClassDefFoundError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassCastException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ArrayStoreException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.VirtualMachineError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.OutOfMemoryError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StackOverflowError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.IllegalMonitorStateException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.Reference from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.SoftReference from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.WeakReference from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.FinalReference from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.PhantomReference from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Cleaner from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.Finalizer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Runnable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Thread from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Thread$UncaughtExceptionHandler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ThreadGroup from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Map from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Dictionary from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Hashtable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Properties from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.AccessibleObject from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Member from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Field from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Parameter from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Executable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Method from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Constructor from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.MagicAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.MethodAccessor from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.MethodAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.ConstructorAccessor from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.ConstructorAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.DelegatingClassLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.ConstantPool from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.FieldAccessor from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.FieldAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.UnsafeFieldAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.UnsafeStaticFieldAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.annotation.Annotation from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.CallerSensitive from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandle from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.DirectMethodHandle from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MemberName from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleNatives from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.LambdaForm from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodType from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.BootstrapMethodError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.CallSite from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.ConstantCallSite from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MutableCallSite from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.VolatileCallSite from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Appendable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.AbstractStringBuilder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StringBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StringBuilder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Unsafe from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.AutoCloseable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.Closeable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.InputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.ByteArrayInputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.File from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URLClassLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URL from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.jar.Manifest from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Launcher from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Launcher$AppClassLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Launcher$ExtClassLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.CodeSource from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StackTraceElement from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.Buffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Boolean from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Character from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Number from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Float from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Double from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Byte from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Short from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Integer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Long from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.NullPointerException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ArithmeticException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.ObjectStreamField from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Comparator from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.String$CaseInsensitiveComparator from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.Guard from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.Permission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.BasicPermission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.RuntimePermission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.AccessController from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.ReflectPermission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.PrivilegedAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.ReflectionFactory$GetReflectionFactoryAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.cert.Certificate from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Iterable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.List from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.RandomAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.AbstractCollection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.AbstractList from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Vector from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Stack from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.ReflectionFactory from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.Reference$Lock from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.Reference$ReferenceHandler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.ReferenceQueue from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.ReferenceQueue$Null from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.ReferenceQueue$Lock from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ref.Finalizer$FinalizerThread from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Map$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Hashtable$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.VM from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Math from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.Charset from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.spi.CharsetProvider from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.FastCharsetProvider from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.StandardCharsets from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.AbstractMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.PreHashedMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.StandardCharsets$Aliases from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.StandardCharsets$Classes from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.StandardCharsets$Cache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ThreadLocal from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.atomic.AtomicInteger from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.IncompatibleClassChangeError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.NoSuchMethodError from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.ArrayList from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Set from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.AbstractSet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$EmptySet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$EmptyList from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$EmptyMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$UnmodifiableCollection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$UnmodifiableList from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$UnmodifiableRandomAccessList from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.Reflection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.HashMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.HashMap$Node from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class$3 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class$ReflectionData from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class$Atomic from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.generics.repository.AbstractRepository from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.generics.repository.GenericDeclRepository from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.generics.repository.ClassRepository from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class$AnnotationData from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.annotation.AnnotationType from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.WeakHashMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassValue$ClassValueMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Modifier from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.LangReflectAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.ReflectAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Arrays from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.HistoricallyNamedCharset from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.Unicode from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.UTF_8 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.ReflectionFactory$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.NativeConstructorAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.DelegatingConstructorAccessorImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StringCoding from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ThreadLocal$ThreadLocalMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ThreadLocal$ThreadLocalMap$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StringCoding$StringDecoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.ArrayDecoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CharsetDecoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.UTF_8$Decoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CodingErrorAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Hashtable$EntrySet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$SynchronizedCollection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$SynchronizedSet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Objects from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Enumeration from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Iterator from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Hashtable$Enumerator from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Runtime from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Version from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileInputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileDescriptor from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaIOFileDescriptorAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileDescriptor$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.SharedSecrets from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.Flushable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.OutputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileOutputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FilterInputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.BufferedInputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.PrivilegedExceptionAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.reflect.misc.ReflectUtil from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FilterOutputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.PrintStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.BufferedOutputStream from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.Writer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.OutputStreamWriter from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.StreamEncoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.security.action.GetPropertyAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.ArrayEncoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CharsetEncoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.UTF_8$Encoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.ByteBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.HeapByteBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.Bits from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.ByteOrder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaNioAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.Bits$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.BufferedWriter from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.DefaultFileSystem from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileSystem from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.UnixFileSystem from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.ExpiringCache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.LinkedHashMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.ExpiringCache$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Enum from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.File$PathStatus from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.file.Watchable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.file.Path from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.StringCoding$StringEncoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassLoader$3 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.ExpiringCache$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.LinkedHashMap$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassLoader$NativeLibrary from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Terminator from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.SignalHandler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Terminator$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Signal from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.NativeSignalHandler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Integer$IntegerCache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.OSEnvironment from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaLangAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.System$2 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.IllegalArgumentException from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Compiler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Compiler$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URLStreamHandlerFactory from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Launcher$Factory from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.security.util.Debug from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassLoader$ParallelLoaders from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.WeakHashMap$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Collections$SetFromMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.WeakHashMap$KeySet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaNetAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URLClassLoader$7 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.StringTokenizer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Launcher$ExtClassLoader$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.MetaIndex from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Readable from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.Reader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.BufferedReader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.InputStreamReader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileReader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.cs.StreamDecoder from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.CharBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.HeapCharBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CoderResult from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CoderResult$Cache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CoderResult$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.charset.CoderResult$2 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.reflect.Array from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.HashMap$TreeNode from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileInputStream$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.www.ParseUtil from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.BitSet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Locale from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.locale.LocaleObjectCache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Locale$Cache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.locks.Lock from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.locks.ReentrantLock from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$Segment from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$Node from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$CounterCell from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$CollectionView from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$KeySetView from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$ValuesView from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$EntrySetView from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.locale.BaseLocale from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.locale.BaseLocale$Cache from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.locale.BaseLocale$Key from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.locale.LocaleObjectCache$CacheEntry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.Locale$LocaleKey from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.util.locale.LocaleUtils from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.CharacterData from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.CharacterDataLatin1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.Parts from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URLStreamHandler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.file.Handler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaSecurityAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.ProtectionDomain$JavaSecurityAccessImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaSecurityProtectionDomainAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.ProtectionDomain$2 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.ProtectionDomain$Key from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.Principal from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.HashSet from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.URLClassPath from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.jar.Handler from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Launcher$AppClassLoader$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.SystemClassLoaderAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.function.Function from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$2 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$3 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassValue from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$4 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassValue$Entry from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassValue$Identity from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.ClassValue$Version from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MemberName$Factory from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleStatics from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.invoke.MethodHandleStatics$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.PostVMInitHook from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.usagetracker.UsageTrackerClient from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.concurrent.atomic.AtomicBoolean from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.usagetracker.UsageTrackerClient$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.usagetracker.UsageTrackerClient$4 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.usagetracker.UsageTrackerClient$3 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FileOutputStream$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.launcher.LauncherHelper from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URLClassLoader$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.util.URLUtil from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.URLClassPath$3 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.URLClassPath$Loader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.URLClassPath$JarLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.zip.ZipConstants from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.zip.ZipFile from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.JavaUtilZipFileAccess from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.util.zip.ZipFile$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.URLClassPath$FileLoader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Resource from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.URLClassPath$FileLoader$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.ByteBuffered from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.PerfCounter from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Perf$GetPerfAction from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.Perf from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.misc.PerfCounter$CoreCounters from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.nio.ch.DirectBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.MappedByteBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.DirectByteBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.LongBuffer from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.nio.DirectLongBufferU from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.PermissionCollection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.Permissions from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.net.URLConnection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.www.URLConnection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.file.FileURLConnection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded sun.net.www.MessageHeader from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FilePermission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FilePermission$1 from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.io.FilePermissionCollection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.AllPermission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.UnresolvedPermission from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.security.BasicPermissionCollection from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded hello from file:/root/java/]
[Loaded sun.launcher.LauncherHelper$FXHelper from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Class$MethodArray from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Void from /srv/jdk1.8.0_60/jre/lib/rt.jar]
Hello
[Loaded java.lang.Shutdown from /srv/jdk1.8.0_60/jre/lib/rt.jar]
[Loaded java.lang.Shutdown$Lock from /srv/jdk1.8.0_60/jre/lib/rt.jar]				
			
			

1.1.5.3. java.io.tmpdir

臨時檔案目錄

java -Djava.io.tmpdir=/path/to/tmpdir		
			

1.1.5.4. 顯示版本號

$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)			
			

1.1.5.5. 列出java模組

			
neo@MacBook-Pro ~ % java --list-modules
java.activation@10.0.1
java.base@10.0.1
java.compiler@10.0.1
java.corba@10.0.1
java.datatransfer@10.0.1
java.desktop@10.0.1
java.instrument@10.0.1
java.jnlp@10.0.1
java.logging@10.0.1
java.management@10.0.1
java.management.rmi@10.0.1
java.naming@10.0.1
java.prefs@10.0.1
java.rmi@10.0.1
java.scripting@10.0.1
java.se@10.0.1
java.se.ee@10.0.1
java.security.jgss@10.0.1
java.security.sasl@10.0.1
java.smartcardio@10.0.1
java.sql@10.0.1
java.sql.rowset@10.0.1
java.transaction@10.0.1
java.xml@10.0.1
java.xml.bind@10.0.1
java.xml.crypto@10.0.1
java.xml.ws@10.0.1
java.xml.ws.annotation@10.0.1
javafx.base@10.0.1
javafx.controls@10.0.1
javafx.deploy@10.0.1
javafx.fxml@10.0.1
javafx.graphics@10.0.1
javafx.media@10.0.1
javafx.swing@10.0.1
javafx.web@10.0.1
jdk.accessibility@10.0.1
jdk.aot@10.0.1
jdk.attach@10.0.1
jdk.charsets@10.0.1
jdk.compiler@10.0.1
jdk.crypto.cryptoki@10.0.1
jdk.crypto.ec@10.0.1
jdk.deploy@10.0.1
jdk.deploy.controlpanel@10.0.1
jdk.dynalink@10.0.1
jdk.editpad@10.0.1
jdk.hotspot.agent@10.0.1
jdk.httpserver@10.0.1
jdk.incubator.httpclient@10.0.1
jdk.internal.ed@10.0.1
jdk.internal.jvmstat@10.0.1
jdk.internal.le@10.0.1
jdk.internal.opt@10.0.1
jdk.internal.vm.ci@10.0.1
jdk.internal.vm.compiler@10.0.1
jdk.internal.vm.compiler.management@10.0.1
jdk.jartool@10.0.1
jdk.javadoc@10.0.1
jdk.javaws@10.0.1
jdk.jcmd@10.0.1
jdk.jconsole@10.0.1
jdk.jdeps@10.0.1
jdk.jdi@10.0.1
jdk.jdwp.agent@10.0.1
jdk.jfr@10.0.1
jdk.jlink@10.0.1
jdk.jshell@10.0.1
jdk.jsobject@10.0.1
jdk.jstatd@10.0.1
jdk.localedata@10.0.1
jdk.management@10.0.1
jdk.management.agent@10.0.1
jdk.management.cmm@10.0.1
jdk.management.jfr@10.0.1
jdk.management.resource@10.0.1
jdk.naming.dns@10.0.1
jdk.naming.rmi@10.0.1
jdk.net@10.0.1
jdk.pack@10.0.1
jdk.packager@10.0.1
jdk.packager.services@10.0.1
jdk.plugin@10.0.1
jdk.plugin.server@10.0.1
jdk.rmic@10.0.1
jdk.scripting.nashorn@10.0.1
jdk.scripting.nashorn.shell@10.0.1
jdk.sctp@10.0.1
jdk.security.auth@10.0.1
jdk.security.jgss@10.0.1
jdk.snmp@10.0.1
jdk.unsupported@10.0.1
jdk.xml.bind@10.0.1
jdk.xml.dom@10.0.1
jdk.xml.ws@10.0.1
jdk.zipfs@10.0.1
oracle.desktop@10.0.1
oracle.net@10.0.1
			
			
			

模組所在位置 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/jmods

			
cd /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/jmods

neo@MacBook-Pro /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/jmods % ll -1
java.activation.jmod
java.base.jmod
java.compiler.jmod
java.corba.jmod
java.datatransfer.jmod
java.desktop.jmod
java.instrument.jmod
java.jnlp.jmod
java.logging.jmod
java.management.jmod
java.management.rmi.jmod
java.naming.jmod
java.prefs.jmod
java.rmi.jmod
java.scripting.jmod
java.se.ee.jmod
java.se.jmod
java.security.jgss.jmod
java.security.sasl.jmod
java.smartcardio.jmod
java.sql.jmod
java.sql.rowset.jmod
java.transaction.jmod
java.xml.bind.jmod
java.xml.crypto.jmod
java.xml.jmod
java.xml.ws.annotation.jmod
java.xml.ws.jmod
javafx.base.jmod
javafx.controls.jmod
javafx.deploy.jmod
javafx.fxml.jmod
javafx.graphics.jmod
javafx.media.jmod
javafx.swing.jmod
javafx.web.jmod
jdk.accessibility.jmod
jdk.aot.jmod
jdk.attach.jmod
jdk.charsets.jmod
jdk.compiler.jmod
jdk.crypto.cryptoki.jmod
jdk.crypto.ec.jmod
jdk.deploy.controlpanel.jmod
jdk.deploy.jmod
jdk.dynalink.jmod
jdk.editpad.jmod
jdk.hotspot.agent.jmod
jdk.httpserver.jmod
jdk.incubator.httpclient.jmod
jdk.internal.ed.jmod
jdk.internal.jvmstat.jmod
jdk.internal.le.jmod
jdk.internal.opt.jmod
jdk.internal.vm.ci.jmod
jdk.internal.vm.compiler.jmod
jdk.internal.vm.compiler.management.jmod
jdk.jartool.jmod
jdk.javadoc.jmod
jdk.javaws.jmod
jdk.jcmd.jmod
jdk.jconsole.jmod
jdk.jdeps.jmod
jdk.jdi.jmod
jdk.jdwp.agent.jmod
jdk.jfr.jmod
jdk.jlink.jmod
jdk.jshell.jmod
jdk.jsobject.jmod
jdk.jstatd.jmod
jdk.localedata.jmod
jdk.management.agent.jmod
jdk.management.cmm.jmod
jdk.management.jfr.jmod
jdk.management.jmod
jdk.management.resource.jmod
jdk.naming.dns.jmod
jdk.naming.rmi.jmod
jdk.net.jmod
jdk.pack.jmod
jdk.packager.jmod
jdk.packager.services.jmod
jdk.plugin.jmod
jdk.plugin.server.jmod
jdk.rmic.jmod
jdk.scripting.nashorn.jmod
jdk.scripting.nashorn.shell.jmod
jdk.sctp.jmod
jdk.security.auth.jmod
jdk.security.jgss.jmod
jdk.snmp.jmod
jdk.unsupported.jmod
jdk.xml.bind.jmod
jdk.xml.dom.jmod
jdk.xml.ws.jmod
jdk.zipfs.jmod
oracle.desktop.jmod
oracle.net.jmod			
			
			

1.1.6. jar

查看包中的檔案列表 jar -tf package.war/package.jar

$ /srv/java/bin/jar -tf mis.netkiller.cn-0.0.1.war |more
META-INF/
META-INF/MANIFEST.MF
WEB-INF/
WEB-INF/jsp/
WEB-INF/jsp/include/
WEB-INF/jsp/system/
WEB-INF/jsp/banner/		
		

1.1.7. jdeps - Java class dependency analyzer.

包類依賴分析器

[net@netkiller lib]$ jdeps jersey-client-1.18.1.jar
jersey-client-1.18.1.jar -> not found
jersey-client-1.18.1.jar -> /usr/java/jdk1.8.0_73/jre/lib/rt.jar
   com.sun.jersey.api.client (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client.async                    jersey-client-1.18.1.jar
      -> com.sun.jersey.api.client.config                   jersey-client-1.18.1.jar
      -> com.sun.jersey.api.client.filter                   jersey-client-1.18.1.jar
      -> com.sun.jersey.client.impl                         jersey-client-1.18.1.jar
      -> com.sun.jersey.client.impl.async                   jersey-client-1.18.1.jar
      -> com.sun.jersey.client.proxy                        jersey-client-1.18.1.jar
      -> com.sun.jersey.client.urlconnection                jersey-client-1.18.1.jar
      -> com.sun.jersey.core.header                         not found
      -> com.sun.jersey.core.provider                       not found
      -> com.sun.jersey.core.reflection                     not found
      -> com.sun.jersey.core.spi.component                  not found
      -> com.sun.jersey.core.spi.component.ioc              not found
      -> com.sun.jersey.core.spi.factory                    not found
      -> com.sun.jersey.core.util                           not found
      -> com.sun.jersey.spi                                 not found
      -> com.sun.jersey.spi.inject                          not found
      -> com.sun.jersey.spi.service                         not found
      -> java.io                                            
      -> java.lang                                          
      -> java.lang.annotation                               
      -> java.lang.reflect                                  
      -> java.net                                           
      -> java.util                                          
      -> java.util.concurrent                               
      -> java.util.logging                                  
      -> javax.ws.rs.core                                   not found
      -> javax.ws.rs.ext                                    not found
   com.sun.jersey.api.client.async (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client                          jersey-client-1.18.1.jar
      -> java.lang                                          
      -> java.util.concurrent                               
   com.sun.jersey.api.client.config (jersey-client-1.18.1.jar)
      -> com.sun.jersey.core.util                           not found
      -> java.lang                                          
      -> java.util                                          
   com.sun.jersey.api.client.filter (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client                          jersey-client-1.18.1.jar
      -> com.sun.jersey.core.util                           not found
      -> java.io                                            
      -> java.lang                                          
      -> java.net                                           
      -> java.nio.charset                                   
      -> java.security                                      
      -> java.util                                          
      -> java.util.logging                                  
      -> java.util.regex                                    
      -> java.util.zip                                      
      -> javax.ws.rs                                        not found
      -> javax.ws.rs.core                                   not found
   com.sun.jersey.client.impl (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client                          jersey-client-1.18.1.jar
      -> com.sun.jersey.core.header                         not found
      -> java.io                                            
      -> java.lang                                          
      -> java.net                                           
      -> java.util                                          
      -> java.util.concurrent.atomic                        
      -> javax.ws.rs.core                                   not found
   com.sun.jersey.client.impl.async (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client                          jersey-client-1.18.1.jar
      -> com.sun.jersey.api.client.async                    jersey-client-1.18.1.jar
      -> java.lang                                          
      -> java.util.concurrent                               
   com.sun.jersey.client.proxy (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client                          jersey-client-1.18.1.jar
      -> com.sun.jersey.api.client.async                    jersey-client-1.18.1.jar
      -> java.lang                                          
      -> java.util.concurrent                               
   com.sun.jersey.client.urlconnection (jersey-client-1.18.1.jar)
      -> com.sun.jersey.api.client                          jersey-client-1.18.1.jar
      -> com.sun.jersey.core.header                         not found
      -> com.sun.jersey.spi                                 not found
      -> java.io                                            
      -> java.lang                                          
      -> java.lang.reflect                                  
      -> java.net                                           
      -> java.security                                      
      -> java.util                                          
      -> java.util.logging                                  
      -> javax.net.ssl                                      
      -> javax.ws.rs.core                                   not found
   com.sun.ws.rs.ext (jersey-client-1.18.1.jar)
      -> com.sun.jersey.core.spi.factory                    not found
      -> java.lang                                          
      -> javax.ws.rs.core                                   not found
		
		

1.1.8. JShell

JShell,即 Java Shell。從java9開始,java開始引入了 REPL(Read-Eval-Print Loop,讀取-求值-輸出 循環)工具

		
neo@MacBook-Pro ~ % jshell
|  Welcome to JShell -- Version 12
|  For an introduction type: /help intro

jshell> 		
		
		

1.1.8.1. /help 顯示幫助信息

			
jshell> /help
|  Type a Java language expression, statement, or declaration.
|  Or type one of the following commands:
|  /list [<name or id>|-all|-start]
|  	list the source you have typed
|  /edit <name or id>
|  	edit a source entry
|  /drop <name or id>
|  	delete a source entry
|  /save [-all|-history|-start] <file>
|  	Save snippet source to a file
|  /open <file>
|  	open a file as source input
|  /vars [<name or id>|-all|-start]
|  	list the declared variables and their values
|  /methods [<name or id>|-all|-start]
|  	list the declared methods and their signatures
|  /types [<name or id>|-all|-start]
|  	list the type declarations
|  /imports 
|  	list the imported items
|  /exit [<integer-expression-snippet>]
|  	exit the jshell tool
|  /env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ...
|  	view or change the evaluation context
|  /reset [-class-path <path>] [-module-path <path>] [-add-modules <modules>]...
|  	reset the jshell tool
|  /reload [-restore] [-quiet] [-class-path <path>] [-module-path <path>]...
|  	reset and replay relevant history -- current or previous (-restore)
|  /history [-all]
|  	history of what you have typed
|  /help [<command>|<subject>]
|  	get information about using the jshell tool
|  /set editor|start|feedback|mode|prompt|truncation|format ...
|  	set configuration information
|  /? [<command>|<subject>]
|  	get information about using the jshell tool
|  /! 
|  	rerun last snippet -- see /help rerun
|  /<id> 
|  	rerun snippets by ID or ID range -- see /help rerun
|  /-<n> 
|  	rerun n-th previous snippet -- see /help rerun
|  
|  For more information type '/help' followed by the name of a
|  command or a subject.
|  For example '/help /list' or '/help intro'.
|  
|  Subjects:
|  
|  intro
|  	an introduction to the jshell tool
|  keys
|  	a description of readline-like input editing
|  id
|  	a description of snippet IDs and how use them
|  shortcuts
|  	a description of keystrokes for snippet and command completion,
|  	information access, and automatic code generation
|  context
|  	a description of the evaluation context options for /env /reload and /reset
|  rerun
|  	a description of ways to re-evaluate previously entered snippets
			
			
			

介紹信息

			
jshell> /help intro
|  
|                                   intro
|                                   =====
|  
|  The jshell tool allows you to execute Java code, getting immediate results.
|  You can enter a Java definition (variable, method, class, etc), like:  int x = 8
|  or a Java expression, like:  x + x
|  or a Java statement or import.
|  These little chunks of Java code are called 'snippets'.
|  
|  There are also the jshell tool commands that allow you to understand and
|  control what you are doing, like:  /list
|  
|  For a list of commands: /help			
			
			

1.1.8.2. 退出命令

			
jshell> /exit
|  Goodbye