February 2, 2024
By: Kevin
Java的方便函数
- 获得一个空闲的端口号
- Java获得IP和主机名称
- Java获得JVM的线程数
- Java获得当前threa-id/name
- Java获取当前进程id
- Java为线程设置异常处理
- Java的全部设置变量查看
- Java的环境变量
- Java查看环境变量中的PATH
- Java的临时目录
- os 名称, java version, 用户目录
- UUID
获得一个空闲的端口号
(import '[java.net ServerSocket])
(defn find-open-port
[]
;; prot 0 的意思就是从空闲端口中拿到一个
(with-open [socket (ServerSocket. 0)]
(.getLocalPort socket)))
(find-open-port)
Java获得IP和主机名称
(import java.net.InetAddress)
(.getHostName (InetAddress/getLocalHost))
;; => "Kevins-MacBook-Pro.local"
(.getHostAddress (InetAddress/getLocalHost))
;; => "192.168.31.66"
Java获得JVM的线程数
(Thread/activeCount)
Java获得当前threa-id/name
(.getName (Thread/currentThread))
(.getId (Thread/currentThread))
Java获取当前进程id
;; java <= 8
(import 'java.lang.management.ManagementFactory)
;; <pid>@<pc-name>
(let [[_ pid hostname]
(re-find #"^(\d+)@(.*)"
(.getName (ManagementFactory/getRuntimeMXBean)))]
pid)
;; java >= 9
(import 'java.lang.ProcessHandle)
(.pid (ProcessHandle/current))
;; => 56288
Java为线程设置异常处理
(Thread/setDefaultUncaughtExceptionHandler
(reify Thread$UncaughtExceptionHandler
(uncaughtException [_ thread ex]
(log/error {:what :uncaught-exception
:exception ex
:where (str "Uncaught exception on" (.getName thread))}))))
Java的全部设置变量查看
java -XshowSettings
Java的环境变量
(System/getenv)
Java查看环境变量中的PATH
(System/getenv "PATH")
Java的临时目录
(System/getProperty "java.io.tmpdir")
os 名称, java version, 用户目录
(System/getProperties)
(System/getProperty "os.name")
(System/getProperty "java.runtime.version" )
(System/getProperty "user.dir")
(System/getProperty "user.name")
UUID
(java.util.UUID/randomUUID)