treeコマンドとjqでfiledumpコマンドを作った

ディレクトリ名を引数に与えて実行し、標準出力にtsv形式で出力するコマンド

ディレクトリ名はカレントディレクトリ名でもいい(ドットだけでもOK)

相対パス指定はだめ(../unkoみたいなのはNG)

基本は正規化したパスで指定する

contentsがなくなるまで再帰処理をjqで行っている

出力内容のヘッダ行と最終行と明細一行目を除くと最終行のレポーティング件数と一致する

引数に指定したディレクトリ名の権限等は出力されないので、そのディレクトリ名より一つ上のディレクトリ名を指定して実行する

 


#!/usr/bin/env bash
usage(){

cat <<EOS
Usage:

CMD: ${0##*/} /bin

EOS

exit 0

}

TARGET_DIR_NAME=$1;shift;

if [ -z $TARGET_DIR_NAME ];then

usage

fi

if ! [ -d $TARGET_DIR_NAME ];then

usage

fi

time tree -a -ugpfhqD --timefmt '%Y-%m-%dT%H:%M:%S' -J $TARGET_DIR_NAME | \
sed -r 's;\\;\\\\;g;' | \
jq -r 'def UNKO:select(.!=null)|if(has("contents")) then ([.type,.name,.mode,.prot,.user,.group,.size,.time,.directories,.files]),(.contents[]|UNKO)else [.type,.name,.mode,.prot,.user,.group,.size,.time,.directories,.files] end;.[]|UNKO|@tsv' | \
sed '1itype\tname\tmode\tprot\tuser\tgroup\tsize\tlast-modified\tdirectories\tfiles'

cspdumpコマンドをつくった

https://github.com/ukijumotahaneniarukenia/cspdump

csharpのメタ定義をTSV形式で標準出力に出力するコマンドを作成した。ライブラリの調査に使えると思う。csharp便利で、windows、linux、macにも対応できるような単一実行バイナリにも簡単にできた。

書いていてjardumpよりきれいにグルーピングできて、jardump書き直そうかという思いが強くなってしまったなど。

jardumpをメンテして4-2-0版をアップした。

結構スッキリできたと思ったなど。逆に書き始めに無駄が多い。

https://github.com/ukijumotahaneniarukenia/jardump/releases

以下、雑記

mrs green appleに今日はハマった。バンドのメンバーに同じ誕生日の3つか4つぐらい下の方がいたなど。

ワードプレスが新しくなってエディタがリッチでいいかんじ。

TypeScriptの型定義自動生成のやり方がボトルネックになりそうなので、潰しておきたい

JVM系の言語はjardumpあれば、ライブラリの使用感を掴むことができるので、大事に使っていきたい。

xml2tableコマンドを作成しようとしているが、名前空間が存在しているかどうかを検知できるスクリプトが必要なことに気づき、それがボトルネックになっている。書きっぷりがxmlファイルごとに異なることがあったような気がしたので、個別パターンを定義する必要が出てきそうでめんどくさがっているなど。

dockerコンテナにbrave-browserをインストール際「–pid=host」とつけるとインストールできた

brave-browserをインストールする手順は以下のコマンドを打つ。実行ユーザーはすべてroot。


apt install -y apt-transport-https curl

apt install -y gnupg  gnupg2 gnupg1

curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -

echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | tee /etc/apt/sources.list.d/brave-browser-release.list

apt update

apt install -y brave-browser

apt-transport-httpsをインストールする際に、policykit-1関連でエラーになる。
以下がdockerコンテナ内でのエラー。


$ apt install -y apt-transport-https curl
Reading package lists... Done
Building dependency tree       
Reading state information... Done
curl is already the newest version (7.58.0-2ubuntu3.9).
apt-transport-https is already the newest version (1.6.12ubuntu0.1).
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 aptdaemon : Depends: policykit-1 but it is not going to be installed
 packagekit : Depends: policykit-1 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

このエラーで結構手こずっていたが、dockerホスト内でbrave-browserをインストールするとうまいこと起動してくれた。ライオンのロゴが出てきて、嬉しくなる。

GUIアプリで遊んでいると、クライアント(dockerコンテナ)で起動したGUIアプリをXサーバー(dockerホスト)に転送するX転送と/sbin/initコマンド起点のsystemd管理(dbusプロセスと関連)をうまいこと同居させたいなーと考えるようになった。

よく見る「Failed to connect to bus: No data available」のエラー文言で検索していたら、以下のサイトを見つけた。

Docker – dockerコンテナ内からラズベリーパイホストを再起動する

ベストアンサーに以下の文言を発見した。


 docker run -v /run/dbus:/run/dbus -v /run/systemd:/run/systemd --pid=host ...

公式で調べた。

PID 設定(–pid)

どうやら、–pid=hostとdocker run時に指定すると、dockerコンテナ内でdockerホスト側の PID 名前空間を使うことができるようだ。

このオプションを指定した状態で、再度作り直したら、エラーも特に出ず、無事にライオンのロゴをdockerコンテナで見ることができた。

このdockerコンテナ内で、以下のコマンドをdockerコンテナとdockerホストで実行すると同じような出力が得られる。


ps aux

もう少し調べていると、発見している方がすでにいた。

Dockerで、PID名前空間を他のコンテナと共有する

デバッグ用にコンテナ用意して、そのコンテナにインストールされている機能を別の検証コンテナで借用できる仕組みのようだ。「dockerコンテナ 対 dockerコンテナ」と「dockerホスト 対 dockerコンテナ」で使い分けることができるようだ。

–pid=hostのオプションはデスクトップアプリケーションとかをお試しで入れて見るような際に便利なのかな。snapなどに応用効きそう。便利そうなオプションを発見できて良かった。

pid=1の/sbin/initプロセスもコンテナ内でみることができるようになったので、もしかしたら、systemdもいけるかなど思ったが、以下のエラーがdockerコンテナで見ることができた。


$ systemctl
Failed to list units: Connection reset by peer


$ sudo systemctl
Running in chroot, ignoring request.


$ systemctl status
Failed to read server status: Connection reset by peer


$ sudo systemctl status
Running in chroot, ignoring request: status

エラーでしらべると、以下のサイトを発見した。

Connection reset by peer on systemctl as root

アンサーにあるコードを実行してみた。


$ git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
$ cd ubuntu-wsl2-systemd-script
$ bash ubuntu-wsl2-systemd-script.sh

wsl2じゃないので、だめだった。ただ、今後需要がありそうなレポジトリを発見できてよかった。

「Running in chroot, ignoring request: status」で調べてみた。wikiにもあった。結構ヤバそうな操作だ。

chroot

結構有名らしい。

Start a systemd service inside chroot

詳しそうなページを見つけた。systemd-nspawnコマンドでいい感じにできそう。dockerはこのコマンドの機能を使いやすくgolangに移植したのかな。

systemd for Administrators, Part VI

systemd-nspawnコマンド単一の機能検証したほうがよさげ。–pid=hostをしていない検証コンテナでsystemd-nspawnコマンドの動きを見てもいいかも。ないしはdockerホストで検証など。

archLinux端末用意しないと。。
これは試したい。。

開発環境の構築に systemd-nspawn を使用する

jacdump(jazdump)コマンドをアップデートした

java class dump(jacdump)
 

こんなかんじで、各クラスの規模感つかめる

– CMD

java -jar target/jacdump-2-0-0-SNAPSHOT.jar | grep -Po '((?:/|-)[a-zA-Z]+)+' | tr -d '-' | tr '/' '.' | sort | uniq -c

– OUT

     23 java.io.BufferedInputStream
     15 java.io.BufferedOutputStream
     24 java.io.BufferedWriter
     23 java.io.ByteArrayInputStream
      1 java.io.Closeable
     15 java.io.DataInput
     39 java.io.DataInputStream
     14 java.io.DataOutput
     10 java.io.DefaultFileSystem
     51 java.io.ExpiringCache
     74 java.io.File
     15 java.io.FileCleanable
     30 java.io.FileDescriptor
     35 java.io.FileInputStream
     17 java.io.FileOutputStream
     14 java.io.FilePermission
     36 java.io.FileSystem
     23 java.io.FilterInputStream
     15 java.io.FilterOutputStream
      1 java.io.Flushable
     23 java.io.InputStream
     17 java.io.ObjectStreamField
     15 java.io.OutputStream
     24 java.io.OutputStreamWriter
     45 java.io.PrintStream
     58 java.io.RandomAccessFile
     37 java.io.UnixFileSystem
     23 java.io.Writer
     63 java.lang.AbstractStringBuilder
      3 java.lang.Appendable
     19 java.lang.ApplicationShutdownHooks
     21 java.lang.ArithmeticException
     21 java.lang.ArrayStoreException
      9 java.lang.AssertionStatusDirectives
      1 java.lang.AutoCloseable
     22 java.lang.Boolean
     21 java.lang.BootstrapMethodError
     38 java.lang.Byte
      7 java.lang.CharSequence
    104 java.lang.Character
      9 java.lang.CharacterData
      9 java.lang.CharacterDataLatin
    118 java.lang.Class
     21 java.lang.ClassCastException
     58 java.lang.ClassLoader
     22 java.lang.ClassNotFoundException
     75 java.lang.ClassValue
      1 java.lang.Comparable
     12 java.lang.CompoundEnumeration
     35 java.lang.Double
     15 java.lang.Enum
     21 java.lang.Error
     21 java.lang.Exception
     35 java.lang.Float
     21 java.lang.IllegalArgumentException
     21 java.lang.IllegalMonitorStateException
     21 java.lang.IncompatibleClassChangeError
     65 java.lang.Integer
      3 java.lang.Iterable
     21 java.lang.LinkageError
     15 java.lang.LiveStackFrame
     22 java.lang.LiveStackFrameInfo
     64 java.lang.Long
     89 java.lang.Math
     33 java.lang.Module
     35 java.lang.ModuleLayer
      9 java.lang.NamedPackage
     21 java.lang.NoClassDefFoundError
     21 java.lang.NoSuchFieldException
     21 java.lang.NoSuchMethodError
     21 java.lang.NoSuchMethodException
     21 java.lang.NullPointerException
     15 java.lang.Number
      9 java.lang.Object
     21 java.lang.OutOfMemoryError
     37 java.lang.Package
     18 java.lang.PublicMethods
      1 java.lang.Readable
     21 java.lang.ReflectiveOperationException
      1 java.lang.Runnable
     56 java.lang.Runtime
     21 java.lang.RuntimeException
     14 java.lang.RuntimePermission
     38 java.lang.SecurityManager
     30 java.lang.Short
     18 java.lang.Shutdown
     19 java.lang.StackFrameInfo
     21 java.lang.StackOverflowError
     79 java.lang.StackStreamFactory
     17 java.lang.StackTraceElement
     60 java.lang.StackWalker
    100 java.lang.String
     95 java.lang.StringBuffer
     95 java.lang.StringBuilder
     32 java.lang.StringCoding
      9 java.lang.StringConcatHelper
     51 java.lang.StringLatin
     73 java.lang.StringUTF
    126 java.lang.System
     19 java.lang.Terminator
     50 java.lang.Thread
     21 java.lang.ThreadDeath
     32 java.lang.ThreadGroup
     36 java.lang.ThreadLocal
     21 java.lang.Throwable
     12 java.lang.VersionProps
     21 java.lang.VirtualMachineError
      9 java.lang.Void
      4 java.lang.annotation.Annotation
      9 java.lang.invoke.AbstractValidatingLambdaMetafactory
      9 java.lang.invoke.BootstrapMethodInvoker
     80 java.lang.invoke.BoundMethodHandle
     13 java.lang.invoke.CallSite
     54 java.lang.invoke.ClassSpecializer
     13 java.lang.invoke.ConstantCallSite
     33 java.lang.invoke.DelegatingMethodHandle
    138 java.lang.invoke.DirectMethodHandle
     16 java.lang.invoke.InfoFromMemberName
     49 java.lang.invoke.InnerClassLambdaMetafactory
     27 java.lang.invoke.InvokerBytecodeGenerator
     18 java.lang.invoke.Invokers
    130 java.lang.invoke.LambdaForm
      9 java.lang.invoke.LambdaFormBuffer
     24 java.lang.invoke.LambdaFormEditor
     11 java.lang.invoke.LambdaMetafactory
     77 java.lang.invoke.MemberName
     24 java.lang.invoke.MethodHandle
     71 java.lang.invoke.MethodHandleImpl
      9 java.lang.invoke.MethodHandleInfo
     19 java.lang.invoke.MethodHandleNatives
      9 java.lang.invoke.MethodHandleStatics
     94 java.lang.invoke.MethodHandles
     63 java.lang.invoke.MethodType
     29 java.lang.invoke.MethodTypeForm
     14 java.lang.invoke.MutableCallSite
      9 java.lang.invoke.ResolvedMethodName
     24 java.lang.invoke.SimpleMethodHandle
    155 java.lang.invoke.StringConcatFactory
     40 java.lang.invoke.TypeConvertingMethodAdapter
      9 java.lang.invoke.VarForm
    120 java.lang.invoke.VarHandle
      9 java.lang.invoke.VarHandleGuards
    100 java.lang.invoke.VarHandleInts
    100 java.lang.invoke.VarHandleLongs
    150 java.lang.invoke.VarHandleObjects
      9 java.lang.invoke.VarHandles
     13 java.lang.invoke.VolatileCallSite
     17 java.lang.module.Configuration
    158 java.lang.module.ModuleDescriptor
      5 java.lang.module.ModuleFinder
      6 java.lang.module.ModuleReader
     12 java.lang.module.ModuleReference
     13 java.lang.module.ResolvedModule
     26 java.lang.ref.Cleaner
     14 java.lang.ref.FinalReference
     63 java.lang.ref.Finalizer
     14 java.lang.ref.PhantomReference
     74 java.lang.ref.Reference
     33 java.lang.ref.ReferenceQueue
     14 java.lang.ref.SoftReference
     14 java.lang.ref.WeakReference
     21 java.lang.reflect.AccessibleObject
      7 java.lang.reflect.AnnotatedElement
     30 java.lang.reflect.Array
     40 java.lang.reflect.Constructor
     39 java.lang.reflect.Executable
     48 java.lang.reflect.Field
      8 java.lang.reflect.GenericDeclaration
      4 java.lang.reflect.Member
     45 java.lang.reflect.Method
     28 java.lang.reflect.Modifier
     26 java.lang.reflect.Parameter
     27 java.lang.reflect.ReflectAccess
     14 java.lang.reflect.ReflectPermission
      1 java.lang.reflect.Type
     83 java.math.BigDecimal
     59 java.math.BigInteger
     18 java.math.RoundingMode
     46 java.net.Inet
     75 java.net.InetAddress
      6 java.net.InetAddressImpl
      9 java.net.InetAddressImplFactory
     14 java.net.NetPermission
     14 java.net.SocketPermission
     55 java.net.URI
     48 java.net.URL
      9 java.net.URLStreamHandler
      1 java.net.URLStreamHandlerFactory
     22 java.nio.Bits
     40 java.nio.Buffer
     90 java.nio.ByteBuffer
     10 java.nio.ByteOrder
     73 java.nio.CharBuffer
    104 java.nio.DirectByteBuffer
    104 java.nio.DirectByteBufferR
     59 java.nio.DirectIntBufferRU
     59 java.nio.DirectIntBufferU
     59 java.nio.DirectLongBufferU
     90 java.nio.HeapByteBuffer
     73 java.nio.HeapCharBuffer
     56 java.nio.IntBuffer
     56 java.nio.LongBuffer
    100 java.nio.MappedByteBuffer
     27 java.nio.charset.Charset
     25 java.nio.charset.CharsetEncoder
     18 java.nio.charset.CoderResult
      9 java.nio.charset.CodingErrorAction
      9 java.nio.charset.StandardCharsets
     11 java.nio.charset.spi.CharsetProvider
     21 java.nio.file.FileSystem
     34 java.nio.file.FileSystems
     78 java.nio.file.Files
     17 java.nio.file.LinkOption
     34 java.nio.file.Path
     11 java.nio.file.Paths
     17 java.nio.file.StandardOpenOption
      2 java.nio.file.Watchable
      1 java.nio.file.attribute.AttributeView
      3 java.nio.file.attribute.BasicFileAttributeView
      9 java.nio.file.attribute.BasicFileAttributes
      8 java.nio.file.attribute.DosFileAttributeView
     13 java.nio.file.attribute.DosFileAttributes
      1 java.nio.file.attribute.FileAttributeView
     17 java.nio.file.attribute.FileTime
     12 java.nio.file.attribute.PosixFileAttributes
      6 java.nio.file.attribute.UserDefinedFileAttributeView
     37 java.nio.file.spi.FileSystemProvider
     11 java.security.AccessControlContext
     32 java.security.AccessController
     14 java.security.AllPermission
     15 java.security.AllPermissionCollection
     14 java.security.BasicPermission
     15 java.security.BasicPermissionCollection
     13 java.security.CodeSource
      1 java.security.Guard
     14 java.security.Permission
     15 java.security.PermissionCollection
     28 java.security.Permissions
      5 java.security.Principal
      1 java.security.PrivilegedAction
      1 java.security.PrivilegedExceptionAction
     37 java.security.ProtectionDomain
     60 java.security.SecureClassLoader
     31 java.security.Security
     14 java.security.SecurityPermission
     18 java.security.UnresolvedPermission
     15 java.security.cert.Certificate
      9 java.text.AttributedCharacterIterator
     59 java.text.DateFormat
     29 java.text.DateFormatSymbols
     70 java.text.DecimalFormat
     43 java.text.DecimalFormatSymbols
     15 java.text.DigitList
     26 java.text.DontCareFieldPosition
     15 java.text.FieldPosition
     26 java.text.Format
     62 java.text.NumberFormat
     46 java.text.SimpleDateFormat
     15 java.text.spi.BreakIteratorProvider
     12 java.text.spi.CollatorProvider
     14 java.text.spi.DateFormatProvider
     12 java.text.spi.DateFormatSymbolsProvider
     12 java.text.spi.DecimalFormatSymbolsProvider
     15 java.text.spi.NumberFormatProvider
     44 java.time.Clock
     66 java.time.Duration
     52 java.time.Instant
    100 java.time.LocalDate
    100 java.time.LocalDateTime
     77 java.time.LocalTime
     48 java.time.Period
     19 java.time.ZoneId
     34 java.time.ZoneOffset
     19 java.time.ZoneRegion
    117 java.time.ZonedDateTime
     35 java.time.chrono.AbstractChronology
     39 java.time.chrono.ChronoLocalDate
     37 java.time.chrono.ChronoLocalDateTime
     16 java.time.chrono.ChronoPeriod
     42 java.time.chrono.ChronoZonedDateTime
     33 java.time.chrono.Chronology
     50 java.time.chrono.IsoChronology
     40 java.time.format.DateTimeFormatter
    211 java.time.format.DateTimeFormatterBuilder
      9 java.time.format.DateTimePrintContext
     40 java.time.format.DateTimeTextProvider
     20 java.time.format.DecimalStyle
     17 java.time.format.ResolverStyle
     17 java.time.format.SignStyle
     20 java.time.format.TextStyle
     30 java.time.temporal.ChronoField
     24 java.time.temporal.ChronoUnit
    175 java.time.temporal.IsoFields
     38 java.time.temporal.JulianFields
     13 java.time.temporal.Temporal
      5 java.time.temporal.TemporalAccessor
      1 java.time.temporal.TemporalAdjuster
      4 java.time.temporal.TemporalAmount
     12 java.time.temporal.TemporalField
     93 java.time.temporal.TemporalQueries
      1 java.time.temporal.TemporalQuery
      8 java.time.temporal.TemporalUnit
     22 java.time.temporal.ValueRange
     20 java.time.zone.ZoneOffsetTransitionRule
     24 java.time.zone.ZoneRules
     28 java.util.AbstractCollection
     40 java.util.AbstractList
     85 java.util.AbstractMap
     40 java.util.AbstractSequentialList
     28 java.util.AbstractSet
     65 java.util.ArrayDeque
    114 java.util.ArrayList
    285 java.util.Arrays
     80 java.util.Calendar
     21 java.util.Collection
    582 java.util.Collections
     18 java.util.Comparator
     36 java.util.Date
     43 java.util.Deque
     16 java.util.Dictionary
     44 java.util.EnumMap
     42 java.util.EnumSet
      3 java.util.Enumeration
      1 java.util.Formattable
     74 java.util.Formatter
     62 java.util.GregorianCalendar
    192 java.util.HashMap
     29 java.util.HashSet
     64 java.util.Hashtable
    115 java.util.IdentityHashMap
    432 java.util.ImmutableCollections
      4 java.util.Iterator
     12 java.util.KeyValueHolder
     98 java.util.LinkedHashMap
     72 java.util.LinkedList
     46 java.util.List
     10 java.util.ListIterator
     28 java.util.ListResourceBundle
     85 java.util.Locale
     48 java.util.Map
     49 java.util.NavigableMap
     38 java.util.NavigableSet
     26 java.util.Objects
     26 java.util.Optional
     90 java.util.Properties
     26 java.util.Queue
     30 java.util.Random
     43 java.util.RegularEnumSet
    196 java.util.ResourceBundle
     98 java.util.ServiceLoader
     34 java.util.Set
     31 java.util.SortedMap
     27 java.util.SortedSet
     61 java.util.Spliterator
    168 java.util.Spliterators
     13 java.util.StringJoiner
     16 java.util.StringTokenizer
      9 java.util.TimSort
     32 java.util.TimeZone
     58 java.util.Vector
     77 java.util.WeakHashMap
     22 java.util.concurrent.AbstractExecutorService
    338 java.util.concurrent.ConcurrentHashMap
     25 java.util.concurrent.ConcurrentMap
     57 java.util.concurrent.ConcurrentNavigableMap
     84 java.util.concurrent.ConcurrentSkipListMap
     50 java.util.concurrent.ConcurrentSkipListSet
     64 java.util.concurrent.CopyOnWriteArrayList
     58 java.util.concurrent.CountedCompleter
      1 java.util.concurrent.Executor
     13 java.util.concurrent.ExecutorService
     87 java.util.concurrent.ForkJoinPool
     56 java.util.concurrent.ForkJoinTask
     51 java.util.concurrent.ForkJoinWorkerThread
      5 java.util.concurrent.Future
      1 java.util.concurrent.ThreadFactory
     36 java.util.concurrent.ThreadLocalRandom
     31 java.util.concurrent.TimeUnit
     28 java.util.concurrent.atomic.AtomicBoolean
     44 java.util.concurrent.atomic.AtomicInteger
     44 java.util.concurrent.atomic.AtomicLong
     21 java.util.concurrent.atomic.LongAdder
     15 java.util.concurrent.atomic.Striped
      9 java.util.concurrent.locks.AbstractOwnableSynchronizer
     39 java.util.concurrent.locks.AbstractQueuedSynchronizer
      6 java.util.concurrent.locks.Lock
     17 java.util.concurrent.locks.LockSupport
     84 java.util.concurrent.locks.ReentrantLock
      2 java.util.function.BiConsumer
      2 java.util.function.BiFunction
      4 java.util.function.BinaryOperator
      2 java.util.function.Consumer
      4 java.util.function.Function
      6 java.util.function.Predicate
      1 java.util.function.Supplier
     54 java.util.jar.Attributes
     42 java.util.jar.JarEntry
     98 java.util.jar.JarFile
     19 java.util.jar.JavaUtilJarAccessImpl
     42 java.util.jar.Manifest
     23 java.util.logging.ConsoleHandler
     10 java.util.logging.ErrorManager
     13 java.util.logging.Formatter
     34 java.util.logging.Handler
     37 java.util.logging.Level
    265 java.util.logging.LogManager
     49 java.util.logging.LogRecord
    109 java.util.logging.Logger
     14 java.util.logging.LoggingPermission
     13 java.util.logging.SimpleFormatter
     34 java.util.logging.StreamHandler
      9 java.util.regex.ASCII
     11 java.util.regex.CharPredicates
     12 java.util.regex.IntHashSet
      7 java.util.regex.MatchResult
     47 java.util.regex.Matcher
    220 java.util.regex.Pattern
     13 java.util.spi.CalendarDataProvider
     13 java.util.spi.CurrencyNameProvider
     17 java.util.spi.LocaleNameProvider
     11 java.util.spi.LocaleServiceProvider
     13 java.util.spi.TimeZoneNameProvider
     17 java.util.stream.AbstractPipeline
     60 java.util.stream.AbstractTask
      8 java.util.stream.BaseStream
     24 java.util.stream.Collector
     66 java.util.stream.Collectors
     63 java.util.stream.FindOps
      9 java.util.stream.PipelineHelper
    155 java.util.stream.ReduceOps
    363 java.util.stream.ReferencePipeline
     25 java.util.stream.Sink
     55 java.util.stream.Stream
     43 java.util.stream.StreamOpFlag
     17 java.util.stream.StreamShape
     17 java.util.stream.StreamSupport
     47 java.util.stream.Streams
      4 java.util.stream.TerminalOp
      9 java.util.stream.TerminalSink
     39 java.util.zip.Inflater
     23 java.util.zip.InflaterInputStream
     20 java.util.zip.ZipCoder
     40 java.util.zip.ZipConstants
     42 java.util.zip.ZipEntry
    151 java.util.zip.ZipFile
     20 java.util.zip.ZipUtils
     37 jdk.internal.jimage.BasicImageReader
     23 jdk.internal.jimage.ImageHeader
     24 jdk.internal.jimage.ImageLocation
     60 jdk.internal.jimage.ImageReader
     24 jdk.internal.jimage.ImageReaderFactory
      2 jdk.internal.jimage.ImageStrings
     20 jdk.internal.jimage.ImageStringsReader
     20 jdk.internal.jimage.NativeImageBuffer
     10 jdk.internal.jimage.decompressor.Decompressor
     27 jdk.internal.loader.AbstractClassLoaderValue
     23 jdk.internal.loader.BootLoader
     80 jdk.internal.loader.BuiltinClassLoader
     18 jdk.internal.loader.ClassLoaderValue
    113 jdk.internal.loader.ClassLoaders
     11 jdk.internal.loader.FileURLMapper
     19 jdk.internal.loader.Resource
     95 jdk.internal.loader.URLClassPath
     99 jdk.internal.logger.BootstrapLogger
     24 jdk.internal.logger.DefaultLoggerFinder
     48 jdk.internal.logger.SimpleConsoleLogger
     42 jdk.internal.logger.SurrogateLogger
     76 jdk.internal.misc.InnocuousThread
     10 jdk.internal.misc.JavaIOFileDescriptorAccess
      1 jdk.internal.misc.JavaIORandomAccessFileAccess
     39 jdk.internal.misc.JavaLangAccess
     11 jdk.internal.misc.JavaLangInvokeAccess
     12 jdk.internal.misc.JavaLangModuleAccess
      2 jdk.internal.misc.JavaLangRefAccess
      2 jdk.internal.misc.JavaNetInetAddressAccess
      1 jdk.internal.misc.JavaNetURLAccess
      1 jdk.internal.misc.JavaNetUriAccess
      7 jdk.internal.misc.JavaNioAccess
      4 jdk.internal.misc.JavaSecurityAccess
     10 jdk.internal.misc.JavaUtilJarAccess
      6 jdk.internal.misc.JavaUtilResourceBundleAccess
      6 jdk.internal.misc.JavaUtilZipFileAccess
     10 jdk.internal.misc.OSEnvironment
     63 jdk.internal.misc.SharedSecrets
     25 jdk.internal.misc.Signal
     28 jdk.internal.misc.TerminatingThreadLocal
    326 jdk.internal.misc.Unsafe
     36 jdk.internal.misc.VM
      9 jdk.internal.module.ArchivedModuleGraph
     25 jdk.internal.module.Builder
     16 jdk.internal.module.Checks
     44 jdk.internal.module.IllegalAccessLogger
     35 jdk.internal.module.ModuleBootstrap
     15 jdk.internal.module.ModuleHashes
     24 jdk.internal.module.ModuleLoaderMap
     11 jdk.internal.module.ModulePatcher
     17 jdk.internal.module.ModuleReferenceImpl
     21 jdk.internal.module.ModuleResolution
     10 jdk.internal.module.ModuleTarget
     21 jdk.internal.module.Modules
     13 jdk.internal.module.Resources
     26 jdk.internal.module.ServicesCatalog
     56 jdk.internal.module.SystemModuleFinders
     27 jdk.internal.module.SystemModules
      9 jdk.internal.module.SystemModulesMap
     14 jdk.internal.org.objectweb.asm.AnnotationVisitor
     14 jdk.internal.org.objectweb.asm.AnnotationWriter
     15 jdk.internal.org.objectweb.asm.ByteVector
     20 jdk.internal.org.objectweb.asm.ClassVisitor
     33 jdk.internal.org.objectweb.asm.ClassWriter
     13 jdk.internal.org.objectweb.asm.FieldVisitor
     13 jdk.internal.org.objectweb.asm.FieldWriter
      9 jdk.internal.org.objectweb.asm.Frame
      9 jdk.internal.org.objectweb.asm.Item
     10 jdk.internal.org.objectweb.asm.Label
     40 jdk.internal.org.objectweb.asm.MethodVisitor
     40 jdk.internal.org.objectweb.asm.MethodWriter
     37 jdk.internal.org.objectweb.asm.Type
     29 jdk.internal.perf.Perf
     32 jdk.internal.perf.PerfCounter
     16 jdk.internal.ref.Cleaner
     31 jdk.internal.ref.CleanerFactory
     72 jdk.internal.ref.CleanerImpl
     15 jdk.internal.ref.PhantomCleanable
     15 jdk.internal.ref.SoftCleanable
     15 jdk.internal.ref.WeakCleanable
      4 jdk.internal.reflect.CallerSensitive
     27 jdk.internal.reflect.ConstantPool
      1 jdk.internal.reflect.ConstructorAccessor
     10 jdk.internal.reflect.ConstructorAccessorImpl
     29 jdk.internal.reflect.DelegatingClassLoader
     10 jdk.internal.reflect.DelegatingConstructorAccessorImpl
     10 jdk.internal.reflect.DelegatingMethodAccessorImpl
     18 jdk.internal.reflect.FieldAccessor
     27 jdk.internal.reflect.FieldAccessorImpl
     18 jdk.internal.reflect.LangReflectAccess
      9 jdk.internal.reflect.MagicAccessorImpl
      1 jdk.internal.reflect.MethodAccessor
     10 jdk.internal.reflect.MethodAccessorImpl
     10 jdk.internal.reflect.NativeConstructorAccessorImpl
     10 jdk.internal.reflect.NativeMethodAccessorImpl
     21 jdk.internal.reflect.Reflection
     48 jdk.internal.reflect.ReflectionFactory
     27 jdk.internal.reflect.UnsafeFieldAccessorImpl
     27 jdk.internal.reflect.UnsafeStaticFieldAccessorImpl
     25 jdk.internal.util.Preconditions
     14 jdk.internal.util.StaticProperty
     16 jdk.internal.util.jar.JarIndex
      9 sun.invoke.empty.Empty
     15 sun.invoke.util.BytecodeDescriptor
     32 sun.invoke.util.ValueConversions
     17 sun.invoke.util.VerifyAccess
     16 sun.invoke.util.VerifyType
     65 sun.invoke.util.Wrapper
     12 sun.launcher.LauncherHelper
     20 sun.net.util.IPAddressUtil
     11 sun.net.util.URLUtil
     15 sun.net.www.ParseUtil
     11 sun.net.www.protocol.file.Handler
     10 sun.net.www.protocol.jar.Handler
      9 sun.net.www.protocol.jrt.Handler
      1 sun.nio.ByteBuffered
      3 sun.nio.ch.DirectBuffer
      1 sun.nio.cs.HistoricallyNamedCharset
     28 sun.nio.cs.ISO
     77 sun.nio.cs.StandardCharsets
     30 sun.nio.cs.StreamEncoder
     28 sun.nio.cs.US
    137 sun.nio.cs.UTF
     28 sun.nio.cs.Unicode
     14 sun.nio.fs.AbstractBasicFileAttributeView
     40 sun.nio.fs.AbstractFileSystemProvider
     11 sun.nio.fs.DefaultFileSystemProvider
      2 sun.nio.fs.DynamicFileAttributeView
     21 sun.nio.fs.LinuxFileSystem
     41 sun.nio.fs.LinuxFileSystemProvider
     19 sun.nio.fs.NativeBuffer
     24 sun.nio.fs.NativeBuffers
     23 sun.nio.fs.UnixFileAttributeViews
     40 sun.nio.fs.UnixFileAttributes
      9 sun.nio.fs.UnixFileStoreAttributes
     21 sun.nio.fs.UnixFileSystem
     40 sun.nio.fs.UnixFileSystemProvider
      9 sun.nio.fs.UnixMountEntry
     20 sun.nio.fs.UnixNativeDispatcher
     48 sun.nio.fs.UnixPath
      9 sun.nio.fs.Util
     14 sun.reflect.annotation.AnnotationParser
     21 sun.reflect.misc.ReflectUtil
     11 sun.security.action.GetBooleanAction
     14 sun.security.action.GetPropertyAction
     21 sun.security.util.Debug
     11 sun.security.util.FilePermCompat
     15 sun.security.util.LazyCodeSourcePermissionCollection
     38 sun.security.util.SecurityConstants
     11 sun.security.util.SecurityProperties
     56 sun.text.resources.cldr.FormatData
     33 sun.util.PreHashedMap
     33 sun.util.calendar.AbstractCalendar
     92 sun.util.calendar.BaseCalendar
     49 sun.util.calendar.CalendarDate
     30 sun.util.calendar.CalendarSystem
     21 sun.util.calendar.CalendarUtils
     98 sun.util.calendar.Gregorian
     38 sun.util.calendar.ZoneInfo
     39 sun.util.calendar.ZoneInfoFile
     14 sun.util.cldr.CLDRBaseLocaleDataMetaInfo
     14 sun.util.cldr.CLDRCalendarDataProviderImpl
     48 sun.util.cldr.CLDRLocaleProviderAdapter
     35 sun.util.locale.BaseLocale
     34 sun.util.locale.InternalLocaleBuilder
     39 sun.util.locale.LanguageTag
     24 sun.util.locale.LocaleObjectCache
     12 sun.util.locale.LocaleUtils
     14 sun.util.locale.ParseStatus
     18 sun.util.locale.StringTokenIterator
      1 sun.util.locale.provider.AvailableLanguageTags
     14 sun.util.locale.provider.CalendarDataProviderImpl
     27 sun.util.locale.provider.CalendarDataUtility
     13 sun.util.locale.provider.CalendarProviderImpl
     15 sun.util.locale.provider.DateFormatProviderImpl
     13 sun.util.locale.provider.DateFormatSymbolsProviderImpl
     13 sun.util.locale.provider.DecimalFormatSymbolsProviderImpl
     36 sun.util.locale.provider.FallbackLocaleProviderAdapter
     36 sun.util.locale.provider.JRELocaleProviderAdapter
      4 sun.util.locale.provider.LocaleDataMetaInfo
     98 sun.util.locale.provider.LocaleProviderAdapter
     34 sun.util.locale.provider.LocaleResources
     16 sun.util.locale.provider.LocaleServiceProviderPool
     16 sun.util.locale.provider.NumberFormatProviderImpl
      2 sun.util.locale.provider.ResourceBundleBasedAdapter
     88 sun.util.logging.PlatformLogger
     16 sun.util.logging.internal.LoggingProviderImpl
     28 sun.util.logging.resources.logging
     66 sun.util.resources.Bundles
     43 sun.util.resources.LocaleData
     28 sun.util.resources.cldr.CalendarData
     12 sun.util.spi.CalendarProvider

大満足💩

javaのシステムライブラリで読み込まれるクラスファイル名の一覧取得

CMD


jshell -s <(cat<<E
String s = System.getProperty("sun.boot.library.path") + "/classlist";
System.out.println(s);
/exit
E
) | xargs cat | sort

OUT

1	java/io/BufferedInputStream
2	java/io/BufferedOutputStream
3	java/io/BufferedWriter
4	java/io/ByteArrayInputStream
5	java/io/Closeable
6	java/io/DataInput
7	java/io/DataInputStream
8	java/io/DataOutput
9	java/io/DefaultFileSystem
10	java/io/ExpiringCache
11	java/io/ExpiringCache$1
12	java/io/ExpiringCache$Entry
13	java/io/File
14	java/io/File$PathStatus
15	java/io/FileCleanable
16	java/io/FileDescriptor
17	java/io/FileDescriptor$1
18	java/io/FileInputStream
19	java/io/FileInputStream$1
20	java/io/FileOutputStream
21	java/io/FilePermission
22	java/io/FileSystem
23	java/io/FilterInputStream
24	java/io/FilterOutputStream
25	java/io/Flushable
26	java/io/InputStream
27	java/io/ObjectStreamField
28	java/io/OutputStream
29	java/io/OutputStreamWriter
30	java/io/PrintStream
31	java/io/RandomAccessFile
32	java/io/RandomAccessFile$2
33	java/io/Serializable
34	java/io/UnixFileSystem
35	java/io/Writer
36	java/lang/AbstractStringBuilder
37	java/lang/Appendable
38	java/lang/ApplicationShutdownHooks
39	java/lang/ApplicationShutdownHooks$1
40	java/lang/ArithmeticException
41	java/lang/ArrayStoreException
42	java/lang/AssertionStatusDirectives
43	java/lang/AutoCloseable
44	java/lang/Boolean
45	java/lang/BootstrapMethodError
46	java/lang/Byte
47	java/lang/Byte$ByteCache
48	java/lang/CharSequence
49	java/lang/Character
50	java/lang/Character$CharacterCache
51	java/lang/CharacterData
52	java/lang/CharacterDataLatin1
53	java/lang/Class
54	java/lang/Class$1
55	java/lang/Class$3
56	java/lang/Class$Atomic
57	java/lang/Class$ReflectionData
58	java/lang/ClassCastException
59	java/lang/ClassLoader
60	java/lang/ClassLoader$2
61	java/lang/ClassLoader$NativeLibrary
62	java/lang/ClassLoader$ParallelLoaders
63	java/lang/ClassNotFoundException
64	java/lang/ClassValue
65	java/lang/ClassValue$ClassValueMap
66	java/lang/ClassValue$Entry
67	java/lang/ClassValue$Identity
68	java/lang/ClassValue$Version
69	java/lang/Cloneable
70	java/lang/Comparable
71	java/lang/CompoundEnumeration
72	java/lang/Double
73	java/lang/Enum
74	java/lang/Error
75	java/lang/Exception
76	java/lang/Float
77	java/lang/IllegalArgumentException
78	java/lang/IllegalMonitorStateException
79	java/lang/IncompatibleClassChangeError
80	java/lang/Integer
81	java/lang/Integer$IntegerCache
82	java/lang/Iterable
83	java/lang/LinkageError
84	java/lang/LiveStackFrame
85	java/lang/LiveStackFrameInfo
86	java/lang/Long
87	java/lang/Long$LongCache
88	java/lang/Math
89	java/lang/Module
90	java/lang/ModuleLayer
91	java/lang/ModuleLayer$Controller
92	java/lang/NamedPackage
93	java/lang/NoClassDefFoundError
94	java/lang/NoSuchFieldException
95	java/lang/NoSuchMethodError
96	java/lang/NoSuchMethodException
97	java/lang/NullPointerException
98	java/lang/Number
99	java/lang/Object
100	java/lang/OutOfMemoryError
101	java/lang/Package
102	java/lang/Package$VersionInfo
103	java/lang/PublicMethods$Key
104	java/lang/PublicMethods$MethodList
105	java/lang/Readable
106	java/lang/ReflectiveOperationException
107	java/lang/Runnable
108	java/lang/Runtime
109	java/lang/Runtime$Version
110	java/lang/RuntimeException
111	java/lang/RuntimePermission
112	java/lang/SecurityManager
113	java/lang/Short
114	java/lang/Shutdown
115	java/lang/Shutdown$Lock
116	java/lang/StackFrameInfo
117	java/lang/StackOverflowError
118	java/lang/StackStreamFactory
119	java/lang/StackStreamFactory$1
120	java/lang/StackStreamFactory$AbstractStackWalker
121	java/lang/StackStreamFactory$FrameBuffer
122	java/lang/StackStreamFactory$StackFrameTraverser
123	java/lang/StackStreamFactory$StackFrameTraverser$StackFrameBuffer
124	java/lang/StackStreamFactory$WalkerState
125	java/lang/StackTraceElement
126	java/lang/StackWalker
127	java/lang/StackWalker$ExtendedOption
128	java/lang/StackWalker$Option
129	java/lang/StackWalker$StackFrame
130	java/lang/String
131	java/lang/String$CaseInsensitiveComparator
132	java/lang/StringBuffer
133	java/lang/StringBuilder
134	java/lang/StringCoding
135	java/lang/StringCoding$1
136	java/lang/StringCoding$Result
137	java/lang/StringConcatHelper
138	java/lang/StringLatin1
139	java/lang/StringUTF16
140	java/lang/System
141	java/lang/System$2
142	java/lang/System$Logger
143	java/lang/System$Logger$Level
144	java/lang/System$LoggerFinder
145	java/lang/Terminator
146	java/lang/Terminator$1
147	java/lang/Thread
148	java/lang/Thread$UncaughtExceptionHandler
149	java/lang/ThreadDeath
150	java/lang/ThreadGroup
151	java/lang/ThreadLocal
152	java/lang/ThreadLocal$ThreadLocalMap
153	java/lang/ThreadLocal$ThreadLocalMap$Entry
154	java/lang/Throwable
155	java/lang/VersionProps
156	java/lang/VirtualMachineError
157	java/lang/Void
158	java/lang/annotation/Annotation
159	java/lang/invoke/AbstractValidatingLambdaMetafactory
160	java/lang/invoke/BootstrapMethodInvoker
161	java/lang/invoke/BoundMethodHandle
162	java/lang/invoke/BoundMethodHandle$Specializer
163	java/lang/invoke/BoundMethodHandle$Specializer$Factory
164	java/lang/invoke/BoundMethodHandle$SpeciesData
165	java/lang/invoke/BoundMethodHandle$Species_L
166	java/lang/invoke/CallSite
167	java/lang/invoke/ClassSpecializer
168	java/lang/invoke/ClassSpecializer$1
169	java/lang/invoke/ClassSpecializer$Factory
170	java/lang/invoke/ClassSpecializer$Factory$1Var
171	java/lang/invoke/ClassSpecializer$SpeciesData
172	java/lang/invoke/ConstantCallSite
173	java/lang/invoke/DelegatingMethodHandle
174	java/lang/invoke/DelegatingMethodHandle$Holder
175	java/lang/invoke/DirectMethodHandle
176	java/lang/invoke/DirectMethodHandle$1
177	java/lang/invoke/DirectMethodHandle$Accessor
178	java/lang/invoke/DirectMethodHandle$Constructor
179	java/lang/invoke/DirectMethodHandle$Holder
180	java/lang/invoke/DirectMethodHandle$Special
181	java/lang/invoke/DirectMethodHandle$StaticAccessor
182	java/lang/invoke/InfoFromMemberName
183	java/lang/invoke/InnerClassLambdaMetafactory
184	java/lang/invoke/InnerClassLambdaMetafactory$ForwardingMethodGenerator
185	java/lang/invoke/InvokerBytecodeGenerator
186	java/lang/invoke/InvokerBytecodeGenerator$2
187	java/lang/invoke/InvokerBytecodeGenerator$CpPatch
188	java/lang/invoke/Invokers
189	java/lang/invoke/Invokers$Holder
190	java/lang/invoke/LambdaForm
191	java/lang/invoke/LambdaForm$BasicType
192	java/lang/invoke/LambdaForm$Holder
193	java/lang/invoke/LambdaForm$Kind
194	java/lang/invoke/LambdaForm$Name
195	java/lang/invoke/LambdaForm$NamedFunction
196	java/lang/invoke/LambdaFormBuffer
197	java/lang/invoke/LambdaFormEditor
198	java/lang/invoke/LambdaFormEditor$Transform
199	java/lang/invoke/LambdaMetafactory
200	java/lang/invoke/MemberName
201	java/lang/invoke/MemberName$Factory
202	java/lang/invoke/MethodHandle
203	java/lang/invoke/MethodHandleImpl
204	java/lang/invoke/MethodHandleImpl$1
205	java/lang/invoke/MethodHandleImpl$AsVarargsCollector
206	java/lang/invoke/MethodHandleImpl$Intrinsic
207	java/lang/invoke/MethodHandleInfo
208	java/lang/invoke/MethodHandleNatives
209	java/lang/invoke/MethodHandleNatives$CallSiteContext
210	java/lang/invoke/MethodHandleStatics
211	java/lang/invoke/MethodHandles
212	java/lang/invoke/MethodHandles$1
213	java/lang/invoke/MethodHandles$Lookup
214	java/lang/invoke/MethodType
215	java/lang/invoke/MethodType$ConcurrentWeakInternSet
216	java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry
217	java/lang/invoke/MethodTypeForm
218	java/lang/invoke/MutableCallSite
219	java/lang/invoke/ResolvedMethodName
220	java/lang/invoke/SimpleMethodHandle
221	java/lang/invoke/StringConcatFactory
222	java/lang/invoke/StringConcatFactory$1
223	java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy
224	java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$1
225	java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$2
226	java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$3
227	java/lang/invoke/StringConcatFactory$Mode
228	java/lang/invoke/StringConcatFactory$Recipe
229	java/lang/invoke/StringConcatFactory$RecipeElement
230	java/lang/invoke/StringConcatFactory$Strategy
231	java/lang/invoke/StringConcatFactory$Stringifiers
232	java/lang/invoke/StringConcatFactory$Stringifiers$StringifierAny
233	java/lang/invoke/StringConcatFactory$Stringifiers$StringifierMost
234	java/lang/invoke/TypeConvertingMethodAdapter
235	java/lang/invoke/VarForm
236	java/lang/invoke/VarHandle
237	java/lang/invoke/VarHandle$1
238	java/lang/invoke/VarHandle$AccessDescriptor
239	java/lang/invoke/VarHandle$AccessMode
240	java/lang/invoke/VarHandle$AccessType
241	java/lang/invoke/VarHandleGuards
242	java/lang/invoke/VarHandleInts$FieldInstanceReadOnly
243	java/lang/invoke/VarHandleInts$FieldInstanceReadWrite
244	java/lang/invoke/VarHandleLongs$FieldInstanceReadOnly
245	java/lang/invoke/VarHandleLongs$FieldInstanceReadWrite
246	java/lang/invoke/VarHandleObjects$Array
247	java/lang/invoke/VarHandleObjects$FieldInstanceReadOnly
248	java/lang/invoke/VarHandleObjects$FieldInstanceReadWrite
249	java/lang/invoke/VarHandles
250	java/lang/invoke/VolatileCallSite
251	java/lang/module/Configuration
252	java/lang/module/ModuleDescriptor
253	java/lang/module/ModuleDescriptor$1
254	java/lang/module/ModuleDescriptor$Exports
255	java/lang/module/ModuleDescriptor$Modifier
256	java/lang/module/ModuleDescriptor$Opens
257	java/lang/module/ModuleDescriptor$Provides
258	java/lang/module/ModuleDescriptor$Requires
259	java/lang/module/ModuleDescriptor$Requires$Modifier
260	java/lang/module/ModuleDescriptor$Version
261	java/lang/module/ModuleFinder
262	java/lang/module/ModuleReader
263	java/lang/module/ModuleReference
264	java/lang/module/ResolvedModule
265	java/lang/ref/Cleaner
266	java/lang/ref/Cleaner$1
267	java/lang/ref/Cleaner$Cleanable
268	java/lang/ref/FinalReference
269	java/lang/ref/Finalizer
270	java/lang/ref/Finalizer$FinalizerThread
271	java/lang/ref/PhantomReference
272	java/lang/ref/Reference
273	java/lang/ref/Reference$1
274	java/lang/ref/Reference$ReferenceHandler
275	java/lang/ref/ReferenceQueue
276	java/lang/ref/ReferenceQueue$Lock
277	java/lang/ref/ReferenceQueue$Null
278	java/lang/ref/SoftReference
279	java/lang/ref/WeakReference
280	java/lang/reflect/AccessibleObject
281	java/lang/reflect/AnnotatedElement
282	java/lang/reflect/Array
283	java/lang/reflect/Constructor
284	java/lang/reflect/Executable
285	java/lang/reflect/Field
286	java/lang/reflect/GenericDeclaration
287	java/lang/reflect/Member
288	java/lang/reflect/Method
289	java/lang/reflect/Modifier
290	java/lang/reflect/Parameter
291	java/lang/reflect/ReflectAccess
292	java/lang/reflect/ReflectPermission
293	java/lang/reflect/Type
294	java/math/BigDecimal
295	java/math/BigDecimal$1
296	java/math/BigInteger
297	java/math/RoundingMode
298	java/net/Inet4Address
299	java/net/Inet4AddressImpl
300	java/net/InetAddress
301	java/net/InetAddress$1
302	java/net/InetAddress$2
303	java/net/InetAddress$InetAddressHolder
304	java/net/InetAddress$NameService
305	java/net/InetAddress$PlatformNameService
306	java/net/InetAddressImpl
307	java/net/InetAddressImplFactory
308	java/net/NetPermission
309	java/net/SocketPermission
310	java/net/URI
311	java/net/URI$1
312	java/net/URI$Parser
313	java/net/URL
314	java/net/URL$3
315	java/net/URL$DefaultFactory
316	java/net/URLStreamHandler
317	java/net/URLStreamHandlerFactory
318	java/nio/Bits
319	java/nio/Bits$1
320	java/nio/Buffer
321	java/nio/Buffer$1
322	java/nio/ByteBuffer
323	java/nio/ByteOrder
324	java/nio/CharBuffer
325	java/nio/DirectByteBuffer
326	java/nio/DirectByteBufferR
327	java/nio/DirectIntBufferRU
328	java/nio/DirectIntBufferU
329	java/nio/DirectLongBufferU
330	java/nio/HeapByteBuffer
331	java/nio/HeapCharBuffer
332	java/nio/IntBuffer
333	java/nio/LongBuffer
334	java/nio/MappedByteBuffer
335	java/nio/charset/Charset
336	java/nio/charset/CharsetEncoder
337	java/nio/charset/CoderResult
338	java/nio/charset/CodingErrorAction
339	java/nio/charset/StandardCharsets
340	java/nio/charset/spi/CharsetProvider
341	java/nio/file/CopyOption
342	java/nio/file/FileSystem
343	java/nio/file/FileSystems
344	java/nio/file/FileSystems$DefaultFileSystemHolder
345	java/nio/file/FileSystems$DefaultFileSystemHolder$1
346	java/nio/file/Files
347	java/nio/file/LinkOption
348	java/nio/file/OpenOption
349	java/nio/file/Path
350	java/nio/file/Paths
351	java/nio/file/StandardOpenOption
352	java/nio/file/Watchable
353	java/nio/file/attribute/AttributeView
354	java/nio/file/attribute/BasicFileAttributeView
355	java/nio/file/attribute/BasicFileAttributes
356	java/nio/file/attribute/DosFileAttributeView
357	java/nio/file/attribute/DosFileAttributes
358	java/nio/file/attribute/FileAttributeView
359	java/nio/file/attribute/FileTime
360	java/nio/file/attribute/PosixFileAttributes
361	java/nio/file/attribute/UserDefinedFileAttributeView
362	java/nio/file/spi/FileSystemProvider
363	java/security/AccessControlContext
364	java/security/AccessController
365	java/security/AccessController$1
366	java/security/AllPermission
367	java/security/AllPermissionCollection
368	java/security/BasicPermission
369	java/security/BasicPermissionCollection
370	java/security/CodeSource
371	java/security/Guard
372	java/security/Permission
373	java/security/PermissionCollection
374	java/security/Permissions
375	java/security/Permissions$1
376	java/security/Principal
377	java/security/PrivilegedAction
378	java/security/PrivilegedExceptionAction
379	java/security/ProtectionDomain
380	java/security/ProtectionDomain$JavaSecurityAccessImpl
381	java/security/ProtectionDomain$Key
382	java/security/SecureClassLoader
383	java/security/SecureClassLoader$1
384	java/security/SecureClassLoader$CodeSourceKey
385	java/security/SecureClassLoader$DebugHolder
386	java/security/Security
387	java/security/Security$1
388	java/security/SecurityPermission
389	java/security/UnresolvedPermission
390	java/security/cert/Certificate
391	java/text/AttributedCharacterIterator$Attribute
392	java/text/DateFormat
393	java/text/DateFormat$Field
394	java/text/DateFormatSymbols
395	java/text/DecimalFormat
396	java/text/DecimalFormatSymbols
397	java/text/DigitList
398	java/text/DontCareFieldPosition
399	java/text/DontCareFieldPosition$1
400	java/text/FieldPosition
401	java/text/Format
402	java/text/Format$Field
403	java/text/Format$FieldDelegate
404	java/text/NumberFormat
405	java/text/NumberFormat$Field
406	java/text/SimpleDateFormat
407	java/text/spi/BreakIteratorProvider
408	java/text/spi/CollatorProvider
409	java/text/spi/DateFormatProvider
410	java/text/spi/DateFormatSymbolsProvider
411	java/text/spi/DecimalFormatSymbolsProvider
412	java/text/spi/NumberFormatProvider
413	java/time/Clock
414	java/time/Clock$SystemClock
415	java/time/Duration
416	java/time/Instant
417	java/time/LocalDate
418	java/time/LocalDate$1
419	java/time/LocalDateTime
420	java/time/LocalTime
421	java/time/LocalTime$1
422	java/time/Period
423	java/time/ZoneId
424	java/time/ZoneOffset
425	java/time/ZoneRegion
426	java/time/ZonedDateTime
427	java/time/ZonedDateTime$1
428	java/time/chrono/AbstractChronology
429	java/time/chrono/ChronoLocalDate
430	java/time/chrono/ChronoLocalDateTime
431	java/time/chrono/ChronoPeriod
432	java/time/chrono/ChronoZonedDateTime
433	java/time/chrono/Chronology
434	java/time/chrono/IsoChronology
435	java/time/format/DateTimeFormatter
436	java/time/format/DateTimeFormatterBuilder
437	java/time/format/DateTimeFormatterBuilder$1
438	java/time/format/DateTimeFormatterBuilder$2
439	java/time/format/DateTimeFormatterBuilder$3
440	java/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser
441	java/time/format/DateTimeFormatterBuilder$CompositePrinterParser
442	java/time/format/DateTimeFormatterBuilder$DateTimePrinterParser
443	java/time/format/DateTimeFormatterBuilder$FractionPrinterParser
444	java/time/format/DateTimeFormatterBuilder$InstantPrinterParser
445	java/time/format/DateTimeFormatterBuilder$NumberPrinterParser
446	java/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser
447	java/time/format/DateTimeFormatterBuilder$SettingsParser
448	java/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser
449	java/time/format/DateTimeFormatterBuilder$TextPrinterParser
450	java/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser
451	java/time/format/DateTimePrintContext
452	java/time/format/DateTimeTextProvider
453	java/time/format/DateTimeTextProvider$1
454	java/time/format/DateTimeTextProvider$LocaleStore
455	java/time/format/DecimalStyle
456	java/time/format/ResolverStyle
457	java/time/format/SignStyle
458	java/time/format/TextStyle
459	java/time/temporal/ChronoField
460	java/time/temporal/ChronoUnit
461	java/time/temporal/IsoFields
462	java/time/temporal/IsoFields$Field
463	java/time/temporal/IsoFields$Field$1
464	java/time/temporal/IsoFields$Field$2
465	java/time/temporal/IsoFields$Field$3
466	java/time/temporal/IsoFields$Field$4
467	java/time/temporal/IsoFields$Unit
468	java/time/temporal/JulianFields
469	java/time/temporal/JulianFields$Field
470	java/time/temporal/Temporal
471	java/time/temporal/TemporalAccessor
472	java/time/temporal/TemporalAdjuster
473	java/time/temporal/TemporalAmount
474	java/time/temporal/TemporalField
475	java/time/temporal/TemporalQueries
476	java/time/temporal/TemporalQueries$1
477	java/time/temporal/TemporalQueries$2
478	java/time/temporal/TemporalQueries$3
479	java/time/temporal/TemporalQueries$4
480	java/time/temporal/TemporalQueries$5
481	java/time/temporal/TemporalQueries$6
482	java/time/temporal/TemporalQueries$7
483	java/time/temporal/TemporalQuery
484	java/time/temporal/TemporalUnit
485	java/time/temporal/ValueRange
486	java/time/zone/ZoneOffsetTransitionRule
487	java/time/zone/ZoneRules
488	java/util/AbstractCollection
489	java/util/AbstractList
490	java/util/AbstractMap
491	java/util/AbstractMap$1
492	java/util/AbstractMap$1$1
493	java/util/AbstractMap$SimpleImmutableEntry
494	java/util/AbstractSequentialList
495	java/util/AbstractSet
496	java/util/ArrayDeque
497	java/util/ArrayDeque$DeqIterator
498	java/util/ArrayList
499	java/util/ArrayList$ArrayListSpliterator
500	java/util/ArrayList$Itr
501	java/util/ArrayList$SubList
502	java/util/Arrays
503	java/util/Arrays$ArrayItr
504	java/util/Arrays$ArrayList
505	java/util/Arrays$LegacyMergeSort
506	java/util/Calendar
507	java/util/Calendar$Builder
508	java/util/Collection
509	java/util/Collections
510	java/util/Collections$1
511	java/util/Collections$3
512	java/util/Collections$EmptyEnumeration
513	java/util/Collections$EmptyIterator
514	java/util/Collections$EmptyList
515	java/util/Collections$EmptyMap
516	java/util/Collections$EmptySet
517	java/util/Collections$SetFromMap
518	java/util/Collections$SingletonMap
519	java/util/Collections$SingletonSet
520	java/util/Collections$SynchronizedCollection
521	java/util/Collections$SynchronizedMap
522	java/util/Collections$SynchronizedSet
523	java/util/Collections$UnmodifiableCollection
524	java/util/Collections$UnmodifiableCollection$1
525	java/util/Collections$UnmodifiableList
526	java/util/Collections$UnmodifiableMap
527	java/util/Collections$UnmodifiableRandomAccessList
528	java/util/Collections$UnmodifiableSet
529	java/util/Comparator
530	java/util/Date
531	java/util/Deque
532	java/util/Dictionary
533	java/util/EnumMap
534	java/util/EnumMap$1
535	java/util/EnumSet
536	java/util/Enumeration
537	java/util/Formattable
538	java/util/Formatter
539	java/util/Formatter$Conversion
540	java/util/Formatter$DateTime
541	java/util/Formatter$FixedString
542	java/util/Formatter$Flags
543	java/util/Formatter$FormatSpecifier
544	java/util/Formatter$FormatString
545	java/util/GregorianCalendar
546	java/util/HashMap
547	java/util/HashMap$EntryIterator
548	java/util/HashMap$EntrySet
549	java/util/HashMap$HashIterator
550	java/util/HashMap$KeyIterator
551	java/util/HashMap$KeySet
552	java/util/HashMap$Node
553	java/util/HashMap$TreeNode
554	java/util/HashMap$ValueIterator
555	java/util/HashMap$Values
556	java/util/HashSet
557	java/util/Hashtable
558	java/util/Hashtable$Entry
559	java/util/Hashtable$Enumerator
560	java/util/IdentityHashMap
561	java/util/IdentityHashMap$IdentityHashMapIterator
562	java/util/IdentityHashMap$KeyIterator
563	java/util/IdentityHashMap$KeySet
564	java/util/IdentityHashMap$Values
565	java/util/ImmutableCollections
566	java/util/ImmutableCollections$AbstractImmutableCollection
567	java/util/ImmutableCollections$AbstractImmutableList
568	java/util/ImmutableCollections$AbstractImmutableMap
569	java/util/ImmutableCollections$AbstractImmutableSet
570	java/util/ImmutableCollections$List12
571	java/util/ImmutableCollections$ListItr
572	java/util/ImmutableCollections$ListN
573	java/util/ImmutableCollections$MapN
574	java/util/ImmutableCollections$MapN$1
575	java/util/ImmutableCollections$MapN$MapNIterator
576	java/util/ImmutableCollections$Set12
577	java/util/ImmutableCollections$Set12$1
578	java/util/ImmutableCollections$SetN
579	java/util/ImmutableCollections$SetN$SetNIterator
580	java/util/ImmutableCollections$SubList
581	java/util/Iterator
582	java/util/KeyValueHolder
583	java/util/LinkedHashMap
584	java/util/LinkedHashMap$Entry
585	java/util/LinkedHashMap$LinkedEntryIterator
586	java/util/LinkedHashMap$LinkedEntrySet
587	java/util/LinkedHashMap$LinkedHashIterator
588	java/util/LinkedList
589	java/util/LinkedList$Node
590	java/util/List
591	java/util/ListIterator
592	java/util/ListResourceBundle
593	java/util/Locale
594	java/util/Locale$1
595	java/util/Locale$Cache
596	java/util/Locale$Category
597	java/util/Map
598	java/util/Map$Entry
599	java/util/NavigableMap
600	java/util/NavigableSet
601	java/util/Objects
602	java/util/Optional
603	java/util/Properties
604	java/util/Properties$EntrySet
605	java/util/Properties$LineReader
606	java/util/Queue
607	java/util/Random
608	java/util/RandomAccess
609	java/util/RegularEnumSet
610	java/util/ResourceBundle
611	java/util/ResourceBundle$1
612	java/util/ResourceBundle$2
613	java/util/ResourceBundle$3
614	java/util/ResourceBundle$BundleReference
615	java/util/ResourceBundle$CacheKey
616	java/util/ResourceBundle$CacheKeyReference
617	java/util/ResourceBundle$Control
618	java/util/ResourceBundle$Control$CandidateListCache
619	java/util/ResourceBundle$KeyElementReference
620	java/util/ResourceBundle$NoFallbackControl
621	java/util/ResourceBundle$ResourceBundleProviderHelper
622	java/util/ResourceBundle$SingleFormatControl
623	java/util/ServiceLoader
624	java/util/ServiceLoader$1
625	java/util/ServiceLoader$2
626	java/util/ServiceLoader$3
627	java/util/ServiceLoader$LazyClassPathLookupIterator
628	java/util/ServiceLoader$ModuleServicesLookupIterator
629	java/util/ServiceLoader$Provider
630	java/util/ServiceLoader$ProviderImpl
631	java/util/Set
632	java/util/SortedMap
633	java/util/SortedSet
634	java/util/Spliterator
635	java/util/Spliterator$OfDouble
636	java/util/Spliterator$OfInt
637	java/util/Spliterator$OfLong
638	java/util/Spliterator$OfPrimitive
639	java/util/Spliterators
640	java/util/Spliterators$1Adapter
641	java/util/Spliterators$ArraySpliterator
642	java/util/Spliterators$EmptySpliterator
643	java/util/Spliterators$EmptySpliterator$OfDouble
644	java/util/Spliterators$EmptySpliterator$OfInt
645	java/util/Spliterators$EmptySpliterator$OfLong
646	java/util/Spliterators$EmptySpliterator$OfRef
647	java/util/StringJoiner
648	java/util/StringTokenizer
649	java/util/TimSort
650	java/util/TimeZone
651	java/util/Vector
652	java/util/WeakHashMap
653	java/util/WeakHashMap$Entry
654	java/util/WeakHashMap$KeySet
655	java/util/concurrent/AbstractExecutorService
656	java/util/concurrent/ConcurrentHashMap
657	java/util/concurrent/ConcurrentHashMap$BaseIterator
658	java/util/concurrent/ConcurrentHashMap$CollectionView
659	java/util/concurrent/ConcurrentHashMap$CounterCell
660	java/util/concurrent/ConcurrentHashMap$EntryIterator
661	java/util/concurrent/ConcurrentHashMap$EntrySetView
662	java/util/concurrent/ConcurrentHashMap$ForwardingNode
663	java/util/concurrent/ConcurrentHashMap$KeyIterator
664	java/util/concurrent/ConcurrentHashMap$KeySetView
665	java/util/concurrent/ConcurrentHashMap$MapEntry
666	java/util/concurrent/ConcurrentHashMap$Node
667	java/util/concurrent/ConcurrentHashMap$ReservationNode
668	java/util/concurrent/ConcurrentHashMap$Segment
669	java/util/concurrent/ConcurrentHashMap$Traverser
670	java/util/concurrent/ConcurrentHashMap$ValueIterator
671	java/util/concurrent/ConcurrentHashMap$ValuesView
672	java/util/concurrent/ConcurrentMap
673	java/util/concurrent/ConcurrentNavigableMap
674	java/util/concurrent/ConcurrentSkipListMap
675	java/util/concurrent/ConcurrentSkipListMap$Index
676	java/util/concurrent/ConcurrentSkipListMap$Node
677	java/util/concurrent/ConcurrentSkipListSet
678	java/util/concurrent/CopyOnWriteArrayList
679	java/util/concurrent/CopyOnWriteArrayList$COWIterator
680	java/util/concurrent/CountedCompleter
681	java/util/concurrent/Executor
682	java/util/concurrent/ExecutorService
683	java/util/concurrent/ForkJoinPool
684	java/util/concurrent/ForkJoinPool$1
685	java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory
686	java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory$1
687	java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory
688	java/util/concurrent/ForkJoinPool$WorkQueue
689	java/util/concurrent/ForkJoinTask
690	java/util/concurrent/ForkJoinTask$ExceptionNode
691	java/util/concurrent/ForkJoinWorkerThread
692	java/util/concurrent/Future
693	java/util/concurrent/ThreadFactory
694	java/util/concurrent/ThreadLocalRandom
695	java/util/concurrent/TimeUnit
696	java/util/concurrent/atomic/AtomicBoolean
697	java/util/concurrent/atomic/AtomicInteger
698	java/util/concurrent/atomic/AtomicLong
699	java/util/concurrent/atomic/LongAdder
700	java/util/concurrent/atomic/Striped64
701	java/util/concurrent/locks/AbstractOwnableSynchronizer
702	java/util/concurrent/locks/AbstractQueuedSynchronizer
703	java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
704	java/util/concurrent/locks/Lock
705	java/util/concurrent/locks/LockSupport
706	java/util/concurrent/locks/ReentrantLock
707	java/util/concurrent/locks/ReentrantLock$NonfairSync
708	java/util/concurrent/locks/ReentrantLock$Sync
709	java/util/function/BiConsumer
710	java/util/function/BiFunction
711	java/util/function/BinaryOperator
712	java/util/function/Consumer
713	java/util/function/Function
714	java/util/function/Predicate
715	java/util/function/Supplier
716	java/util/jar/Attributes
717	java/util/jar/Attributes$Name
718	java/util/jar/JarEntry
719	java/util/jar/JarFile
720	java/util/jar/JarFile$1
721	java/util/jar/JarFile$JarFileEntry
722	java/util/jar/JavaUtilJarAccessImpl
723	java/util/jar/Manifest
724	java/util/jar/Manifest$FastInputStream
725	java/util/logging/ConsoleHandler
726	java/util/logging/ErrorManager
727	java/util/logging/Formatter
728	java/util/logging/Handler
729	java/util/logging/Handler$1
730	java/util/logging/Level
731	java/util/logging/Level$KnownLevel
732	java/util/logging/Level$RbAccess
733	java/util/logging/LogManager
734	java/util/logging/LogManager$1
735	java/util/logging/LogManager$2
736	java/util/logging/LogManager$4
737	java/util/logging/LogManager$Cleaner
738	java/util/logging/LogManager$CloseOnReset
739	java/util/logging/LogManager$LogNode
740	java/util/logging/LogManager$LoggerContext
741	java/util/logging/LogManager$LoggerContext$1
742	java/util/logging/LogManager$LoggerWeakRef
743	java/util/logging/LogManager$LoggingProviderAccess
744	java/util/logging/LogManager$RootLogger
745	java/util/logging/LogManager$SystemLoggerContext
746	java/util/logging/LogManager$VisitedLoggers
747	java/util/logging/LogRecord
748	java/util/logging/LogRecord$CallerFinder
749	java/util/logging/Logger
750	java/util/logging/Logger$ConfigurationData
751	java/util/logging/Logger$LoggerBundle
752	java/util/logging/Logger$SystemLoggerHelper
753	java/util/logging/Logger$SystemLoggerHelper$1
754	java/util/logging/LoggingPermission
755	java/util/logging/SimpleFormatter
756	java/util/logging/StreamHandler
757	java/util/logging/StreamHandler$1
758	java/util/regex/ASCII
759	java/util/regex/CharPredicates
760	java/util/regex/IntHashSet
761	java/util/regex/MatchResult
762	java/util/regex/Matcher
763	java/util/regex/Pattern
764	java/util/regex/Pattern$1
765	java/util/regex/Pattern$Begin
766	java/util/regex/Pattern$BitClass
767	java/util/regex/Pattern$BmpCharPredicate
768	java/util/regex/Pattern$BmpCharProperty
769	java/util/regex/Pattern$BmpCharPropertyGreedy
770	java/util/regex/Pattern$Branch
771	java/util/regex/Pattern$BranchConn
772	java/util/regex/Pattern$CharPredicate
773	java/util/regex/Pattern$CharProperty
774	java/util/regex/Pattern$CharPropertyGreedy
775	java/util/regex/Pattern$First
776	java/util/regex/Pattern$GroupHead
777	java/util/regex/Pattern$GroupTail
778	java/util/regex/Pattern$LastNode
779	java/util/regex/Pattern$Node
780	java/util/regex/Pattern$Qtype
781	java/util/regex/Pattern$Ques
782	java/util/regex/Pattern$Slice
783	java/util/regex/Pattern$SliceNode
784	java/util/regex/Pattern$Start
785	java/util/regex/Pattern$TreeInfo
786	java/util/spi/CalendarDataProvider
787	java/util/spi/CurrencyNameProvider
788	java/util/spi/LocaleNameProvider
789	java/util/spi/LocaleServiceProvider
790	java/util/spi/TimeZoneNameProvider
791	java/util/stream/AbstractPipeline
792	java/util/stream/AbstractTask
793	java/util/stream/BaseStream
794	java/util/stream/Collector
795	java/util/stream/Collector$Characteristics
796	java/util/stream/Collectors
797	java/util/stream/Collectors$CollectorImpl
798	java/util/stream/FindOps
799	java/util/stream/FindOps$FindOp
800	java/util/stream/FindOps$FindSink
801	java/util/stream/FindOps$FindSink$OfRef
802	java/util/stream/PipelineHelper
803	java/util/stream/ReduceOps
804	java/util/stream/ReduceOps$3
805	java/util/stream/ReduceOps$3ReducingSink
806	java/util/stream/ReduceOps$AccumulatingSink
807	java/util/stream/ReduceOps$Box
808	java/util/stream/ReduceOps$ReduceOp
809	java/util/stream/ReduceOps$ReduceTask
810	java/util/stream/ReferencePipeline
811	java/util/stream/ReferencePipeline$2
812	java/util/stream/ReferencePipeline$2$1
813	java/util/stream/ReferencePipeline$3
814	java/util/stream/ReferencePipeline$3$1
815	java/util/stream/ReferencePipeline$7
816	java/util/stream/ReferencePipeline$7$1
817	java/util/stream/ReferencePipeline$Head
818	java/util/stream/ReferencePipeline$StatelessOp
819	java/util/stream/Sink
820	java/util/stream/Sink$ChainedReference
821	java/util/stream/Stream
822	java/util/stream/Stream$Builder
823	java/util/stream/StreamOpFlag
824	java/util/stream/StreamOpFlag$MaskBuilder
825	java/util/stream/StreamOpFlag$Type
826	java/util/stream/StreamShape
827	java/util/stream/StreamSupport
828	java/util/stream/Streams
829	java/util/stream/Streams$AbstractStreamBuilderImpl
830	java/util/stream/Streams$StreamBuilderImpl
831	java/util/stream/TerminalOp
832	java/util/stream/TerminalSink
833	java/util/zip/Inflater
834	java/util/zip/Inflater$InflaterZStreamRef
835	java/util/zip/InflaterInputStream
836	java/util/zip/ZipCoder
837	java/util/zip/ZipCoder$UTF8
838	java/util/zip/ZipConstants
839	java/util/zip/ZipEntry
840	java/util/zip/ZipFile
841	java/util/zip/ZipFile$1
842	java/util/zip/ZipFile$CleanableResource
843	java/util/zip/ZipFile$InflaterCleanupAction
844	java/util/zip/ZipFile$Source
845	java/util/zip/ZipFile$Source$End
846	java/util/zip/ZipFile$Source$Key
847	java/util/zip/ZipFile$ZipFileInflaterInputStream
848	java/util/zip/ZipFile$ZipFileInputStream
849	java/util/zip/ZipUtils
850	jdk/internal/jimage/BasicImageReader
851	jdk/internal/jimage/BasicImageReader$1
852	jdk/internal/jimage/ImageHeader
853	jdk/internal/jimage/ImageLocation
854	jdk/internal/jimage/ImageReader
855	jdk/internal/jimage/ImageReader$SharedImageReader
856	jdk/internal/jimage/ImageReaderFactory
857	jdk/internal/jimage/ImageReaderFactory$1
858	jdk/internal/jimage/ImageStrings
859	jdk/internal/jimage/ImageStringsReader
860	jdk/internal/jimage/NativeImageBuffer
861	jdk/internal/jimage/NativeImageBuffer$1
862	jdk/internal/jimage/decompressor/Decompressor
863	jdk/internal/loader/AbstractClassLoaderValue
864	jdk/internal/loader/AbstractClassLoaderValue$Memoizer
865	jdk/internal/loader/BootLoader
866	jdk/internal/loader/BuiltinClassLoader
867	jdk/internal/loader/BuiltinClassLoader$1
868	jdk/internal/loader/BuiltinClassLoader$2
869	jdk/internal/loader/BuiltinClassLoader$5
870	jdk/internal/loader/BuiltinClassLoader$LoadedModule
871	jdk/internal/loader/ClassLoaderValue
872	jdk/internal/loader/ClassLoaders
873	jdk/internal/loader/ClassLoaders$AppClassLoader
874	jdk/internal/loader/ClassLoaders$BootClassLoader
875	jdk/internal/loader/ClassLoaders$PlatformClassLoader
876	jdk/internal/loader/FileURLMapper
877	jdk/internal/loader/Resource
878	jdk/internal/loader/URLClassPath
879	jdk/internal/loader/URLClassPath$1
880	jdk/internal/loader/URLClassPath$3
881	jdk/internal/loader/URLClassPath$JarLoader
882	jdk/internal/loader/URLClassPath$JarLoader$1
883	jdk/internal/loader/URLClassPath$JarLoader$2
884	jdk/internal/loader/URLClassPath$Loader
885	jdk/internal/logger/BootstrapLogger
886	jdk/internal/logger/BootstrapLogger$BootstrapExecutors
887	jdk/internal/logger/BootstrapLogger$DetectBackend
888	jdk/internal/logger/BootstrapLogger$DetectBackend$1
889	jdk/internal/logger/BootstrapLogger$LoggingBackend
890	jdk/internal/logger/BootstrapLogger$RedirectedLoggers
891	jdk/internal/logger/DefaultLoggerFinder
892	jdk/internal/logger/DefaultLoggerFinder$1
893	jdk/internal/logger/SimpleConsoleLogger
894	jdk/internal/logger/SimpleConsoleLogger$Formatting
895	jdk/internal/logger/SurrogateLogger
896	jdk/internal/misc/InnocuousThread
897	jdk/internal/misc/InnocuousThread$2
898	jdk/internal/misc/InnocuousThread$3
899	jdk/internal/misc/JavaIOFileDescriptorAccess
900	jdk/internal/misc/JavaIORandomAccessFileAccess
901	jdk/internal/misc/JavaLangAccess
902	jdk/internal/misc/JavaLangInvokeAccess
903	jdk/internal/misc/JavaLangModuleAccess
904	jdk/internal/misc/JavaLangRefAccess
905	jdk/internal/misc/JavaNetInetAddressAccess
906	jdk/internal/misc/JavaNetURLAccess
907	jdk/internal/misc/JavaNetUriAccess
908	jdk/internal/misc/JavaNioAccess
909	jdk/internal/misc/JavaNioAccess$BufferPool
910	jdk/internal/misc/JavaSecurityAccess
911	jdk/internal/misc/JavaUtilJarAccess
912	jdk/internal/misc/JavaUtilResourceBundleAccess
913	jdk/internal/misc/JavaUtilZipFileAccess
914	jdk/internal/misc/OSEnvironment
915	jdk/internal/misc/SharedSecrets
916	jdk/internal/misc/Signal
917	jdk/internal/misc/Signal$Handler
918	jdk/internal/misc/Signal$NativeHandler
919	jdk/internal/misc/TerminatingThreadLocal
920	jdk/internal/misc/TerminatingThreadLocal$1
921	jdk/internal/misc/Unsafe
922	jdk/internal/misc/VM
923	jdk/internal/module/ArchivedModuleGraph
924	jdk/internal/module/Builder
925	jdk/internal/module/Checks
926	jdk/internal/module/IllegalAccessLogger
927	jdk/internal/module/IllegalAccessLogger$Builder
928	jdk/internal/module/IllegalAccessLogger$Mode
929	jdk/internal/module/ModuleBootstrap
930	jdk/internal/module/ModuleBootstrap$2
931	jdk/internal/module/ModuleBootstrap$Counters
932	jdk/internal/module/ModuleHashes
933	jdk/internal/module/ModuleLoaderMap
934	jdk/internal/module/ModuleLoaderMap$Mapper
935	jdk/internal/module/ModulePatcher
936	jdk/internal/module/ModuleReferenceImpl
937	jdk/internal/module/ModuleResolution
938	jdk/internal/module/ModuleTarget
939	jdk/internal/module/Modules
940	jdk/internal/module/Resources
941	jdk/internal/module/ServicesCatalog
942	jdk/internal/module/ServicesCatalog$ServiceProvider
943	jdk/internal/module/SystemModuleFinders
944	jdk/internal/module/SystemModuleFinders$2
945	jdk/internal/module/SystemModuleFinders$SystemImage
946	jdk/internal/module/SystemModuleFinders$SystemModuleFinder
947	jdk/internal/module/SystemModuleFinders$SystemModuleReader
948	jdk/internal/module/SystemModules
949	jdk/internal/module/SystemModules$all
950	jdk/internal/module/SystemModulesMap
951	jdk/internal/org/objectweb/asm/AnnotationVisitor
952	jdk/internal/org/objectweb/asm/AnnotationWriter
953	jdk/internal/org/objectweb/asm/ByteVector
954	jdk/internal/org/objectweb/asm/ClassVisitor
955	jdk/internal/org/objectweb/asm/ClassWriter
956	jdk/internal/org/objectweb/asm/FieldVisitor
957	jdk/internal/org/objectweb/asm/FieldWriter
958	jdk/internal/org/objectweb/asm/Frame
959	jdk/internal/org/objectweb/asm/Item
960	jdk/internal/org/objectweb/asm/Label
961	jdk/internal/org/objectweb/asm/MethodVisitor
962	jdk/internal/org/objectweb/asm/MethodWriter
963	jdk/internal/org/objectweb/asm/Type
964	jdk/internal/perf/Perf
965	jdk/internal/perf/Perf$GetPerfAction
966	jdk/internal/perf/PerfCounter
967	jdk/internal/perf/PerfCounter$CoreCounters
968	jdk/internal/ref/Cleaner
969	jdk/internal/ref/CleanerFactory
970	jdk/internal/ref/CleanerFactory$1
971	jdk/internal/ref/CleanerFactory$1$1
972	jdk/internal/ref/CleanerImpl
973	jdk/internal/ref/CleanerImpl$CleanerCleanable
974	jdk/internal/ref/CleanerImpl$PhantomCleanableRef
975	jdk/internal/ref/CleanerImpl$SoftCleanableRef
976	jdk/internal/ref/CleanerImpl$WeakCleanableRef
977	jdk/internal/ref/PhantomCleanable
978	jdk/internal/ref/SoftCleanable
979	jdk/internal/ref/WeakCleanable
980	jdk/internal/reflect/CallerSensitive
981	jdk/internal/reflect/ConstantPool
982	jdk/internal/reflect/ConstructorAccessor
983	jdk/internal/reflect/ConstructorAccessorImpl
984	jdk/internal/reflect/DelegatingClassLoader
985	jdk/internal/reflect/DelegatingConstructorAccessorImpl
986	jdk/internal/reflect/DelegatingMethodAccessorImpl
987	jdk/internal/reflect/FieldAccessor
988	jdk/internal/reflect/FieldAccessorImpl
989	jdk/internal/reflect/LangReflectAccess
990	jdk/internal/reflect/MagicAccessorImpl
991	jdk/internal/reflect/MethodAccessor
992	jdk/internal/reflect/MethodAccessorImpl
993	jdk/internal/reflect/NativeConstructorAccessorImpl
994	jdk/internal/reflect/NativeMethodAccessorImpl
995	jdk/internal/reflect/Reflection
996	jdk/internal/reflect/ReflectionFactory
997	jdk/internal/reflect/ReflectionFactory$GetReflectionFactoryAction
998	jdk/internal/reflect/UnsafeFieldAccessorImpl
999	jdk/internal/reflect/UnsafeStaticFieldAccessorImpl
1000	jdk/internal/util/Preconditions
1001	jdk/internal/util/Preconditions$1
1002	jdk/internal/util/StaticProperty
1003	jdk/internal/util/jar/JarIndex
1004	sun/invoke/empty/Empty
1005	sun/invoke/util/BytecodeDescriptor
1006	sun/invoke/util/ValueConversions
1007	sun/invoke/util/ValueConversions$WrapperCache
1008	sun/invoke/util/VerifyAccess
1009	sun/invoke/util/VerifyType
1010	sun/invoke/util/Wrapper
1011	sun/invoke/util/Wrapper$Format
1012	sun/launcher/LauncherHelper
1013	sun/net/util/IPAddressUtil
1014	sun/net/util/URLUtil
1015	sun/net/www/ParseUtil
1016	sun/net/www/protocol/file/Handler
1017	sun/net/www/protocol/jar/Handler
1018	sun/net/www/protocol/jrt/Handler
1019	sun/nio/ByteBuffered
1020	sun/nio/ch/DirectBuffer
1021	sun/nio/cs/HistoricallyNamedCharset
1022	sun/nio/cs/ISO_8859_1
1023	sun/nio/cs/StandardCharsets
1024	sun/nio/cs/StandardCharsets$Aliases
1025	sun/nio/cs/StandardCharsets$Cache
1026	sun/nio/cs/StreamEncoder
1027	sun/nio/cs/US_ASCII
1028	sun/nio/cs/UTF_16
1029	sun/nio/cs/UTF_16BE
1030	sun/nio/cs/UTF_16LE
1031	sun/nio/cs/UTF_8
1032	sun/nio/cs/UTF_8$Encoder
1033	sun/nio/cs/Unicode
1034	sun/nio/fs/AbstractBasicFileAttributeView
1035	sun/nio/fs/AbstractFileSystemProvider
1036	sun/nio/fs/DefaultFileSystemProvider
1037	sun/nio/fs/DynamicFileAttributeView
1038	sun/nio/fs/LinuxFileSystem
1039	sun/nio/fs/LinuxFileSystemProvider
1040	sun/nio/fs/NativeBuffer
1041	sun/nio/fs/NativeBuffer$Deallocator
1042	sun/nio/fs/NativeBuffers
1043	sun/nio/fs/NativeBuffers$1
1044	sun/nio/fs/UnixFileAttributeViews
1045	sun/nio/fs/UnixFileAttributeViews$Basic
1046	sun/nio/fs/UnixFileAttributes
1047	sun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes
1048	sun/nio/fs/UnixFileStoreAttributes
1049	sun/nio/fs/UnixFileSystem
1050	sun/nio/fs/UnixFileSystemProvider
1051	sun/nio/fs/UnixMountEntry
1052	sun/nio/fs/UnixNativeDispatcher
1053	sun/nio/fs/UnixNativeDispatcher$1
1054	sun/nio/fs/UnixPath
1055	sun/nio/fs/Util
1056	sun/reflect/annotation/AnnotationParser
1057	sun/reflect/misc/ReflectUtil
1058	sun/security/action/GetBooleanAction
1059	sun/security/action/GetPropertyAction
1060	sun/security/util/Debug
1061	sun/security/util/FilePermCompat
1062	sun/security/util/LazyCodeSourcePermissionCollection
1063	sun/security/util/SecurityConstants
1064	sun/security/util/SecurityProperties
1065	sun/text/resources/cldr/FormatData
1066	sun/text/resources/cldr/FormatData_en
1067	sun/util/PreHashedMap
1068	sun/util/calendar/AbstractCalendar
1069	sun/util/calendar/BaseCalendar
1070	sun/util/calendar/BaseCalendar$Date
1071	sun/util/calendar/CalendarDate
1072	sun/util/calendar/CalendarSystem
1073	sun/util/calendar/CalendarUtils
1074	sun/util/calendar/Gregorian
1075	sun/util/calendar/Gregorian$Date
1076	sun/util/calendar/ZoneInfo
1077	sun/util/calendar/ZoneInfoFile
1078	sun/util/calendar/ZoneInfoFile$1
1079	sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule
1080	sun/util/cldr/CLDRBaseLocaleDataMetaInfo
1081	sun/util/cldr/CLDRCalendarDataProviderImpl
1082	sun/util/cldr/CLDRLocaleProviderAdapter
1083	sun/util/cldr/CLDRLocaleProviderAdapter$1
1084	sun/util/locale/BaseLocale
1085	sun/util/locale/BaseLocale$Cache
1086	sun/util/locale/BaseLocale$Key
1087	sun/util/locale/InternalLocaleBuilder
1088	sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar
1089	sun/util/locale/LanguageTag
1090	sun/util/locale/LocaleObjectCache
1091	sun/util/locale/LocaleObjectCache$CacheEntry
1092	sun/util/locale/LocaleUtils
1093	sun/util/locale/ParseStatus
1094	sun/util/locale/StringTokenIterator
1095	sun/util/locale/provider/AvailableLanguageTags
1096	sun/util/locale/provider/CalendarDataProviderImpl
1097	sun/util/locale/provider/CalendarDataUtility
1098	sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter
1099	sun/util/locale/provider/CalendarProviderImpl
1100	sun/util/locale/provider/DateFormatProviderImpl
1101	sun/util/locale/provider/DateFormatSymbolsProviderImpl
1102	sun/util/locale/provider/DecimalFormatSymbolsProviderImpl
1103	sun/util/locale/provider/FallbackLocaleProviderAdapter
1104	sun/util/locale/provider/JRELocaleProviderAdapter
1105	sun/util/locale/provider/LocaleDataMetaInfo
1106	sun/util/locale/provider/LocaleProviderAdapter
1107	sun/util/locale/provider/LocaleProviderAdapter$1
1108	sun/util/locale/provider/LocaleProviderAdapter$NonExistentAdapter
1109	sun/util/locale/provider/LocaleProviderAdapter$Type
1110	sun/util/locale/provider/LocaleResources
1111	sun/util/locale/provider/LocaleResources$ResourceReference
1112	sun/util/locale/provider/LocaleServiceProviderPool
1113	sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter
1114	sun/util/locale/provider/NumberFormatProviderImpl
1115	sun/util/locale/provider/ResourceBundleBasedAdapter
1116	sun/util/logging/PlatformLogger
1117	sun/util/logging/PlatformLogger$Bridge
1118	sun/util/logging/PlatformLogger$ConfigurableBridge
1119	sun/util/logging/PlatformLogger$ConfigurableBridge$LoggerConfiguration
1120	sun/util/logging/PlatformLogger$Level
1121	sun/util/logging/internal/LoggingProviderImpl
1122	sun/util/logging/internal/LoggingProviderImpl$LogManagerAccess
1123	sun/util/logging/resources/logging
1124	sun/util/resources/Bundles
1125	sun/util/resources/Bundles$1
1126	sun/util/resources/Bundles$BundleReference
1127	sun/util/resources/Bundles$CacheKey
1128	sun/util/resources/Bundles$CacheKeyReference
1129	sun/util/resources/Bundles$Strategy
1130	sun/util/resources/LocaleData
1131	sun/util/resources/LocaleData$1
1132	sun/util/resources/LocaleData$LocaleDataStrategy
1133	sun/util/resources/cldr/CalendarData
1134	sun/util/spi/CalendarProvider

jardumpをメンテして2-0-0版をアップした。

kotlin,swift,android,java,graalvmなどマルチプラットホーム対応が進んでいる。単一実行バイナリコマンドがjavaでもつくりやすくなってきた。最近はkotlinとswiftでシコシコしている。javaで機会学習とかあんまり聞かないけど、個人的には興味があるので、そういったjarライブラリの情報元は少ないだろうから、jarファイルからクロステーブル形式で出力するコマンドを以前作ってシコシコしようと考えていた。せっかくだから、jardumpもgraalvmでネイティブバイナリ形式でハンディなコマンドを作ろうと思ったが、どうもクラスローダ周りがgraalvm経由で作成されたバイナリだとうまく動かなくて、結局javaコマンドの引数に-jar XXX.jarみたいなオプションをつけて実行しなくてはいけなくなった。万能ではないが実行時にクラスパスを気にしなくて済むようなやり方はハンディだと思う。コンパイル時には外部ライブラリ依存な単一実行可能な形式のjarファイルをgradleないしはmavenで作成する必要がある。
jar file dump(jardump)
 

書いていた発見としては、クラスロード時にその時点でのライブラリの依存関係が解消されていなくて、例外が起きたことと、実行時にローディングしたクラスファイルの依存関係が解消されていなくて、例外が起きたことの2つは別ものなのかななど。依存関係が解消されない場合は対象のjarファイル名とそのjarに包まれているクラス名をフルパス形式でマップに保持した。必要であったら、プロジェクトをインポートして、いろいろいじってみるような感じにした。

楽しみにしているのは失敗した依存関係のjarファイルを単一で引数に指定したときの出力結果と見比べたりすること。

いろいろ気づくこともあるような気がする。

個人的には、xmlやnet系のパッケージ名が絡んでくると泥試合になることを経験している。

割と結構便利だと思う。いろいろブラッシュアップしたつもり。💩

javalangの特定のクラスからメタ情報をクロステーブル形式で標準出力に出力するコマンドつくってみた

すっかり放置していたブログに書いてみる。クラスのメタ定義情報のうち参照しそうな列情報はほぼ決め打ちなので、クロス形式で出力してみた。フルスクラッチなので、クロス形式の実装のえぐみはすごいがリファクタリングしていく布石にはなったとおもう。表頭と表側に分けて考えるのがいいのか。どんなメソッド使えるのかAPIドキュメントを参照してもいいけど、クラス名が分かっていて、手元にjdkあるなら、ファイル化できてデータベースなりにぶち込んでから、じっくりみたりとかそういったのがハンディになると思った。gitに自作コマンドとして公開してみた。
java class dump(jazdump)
 

パイプラインについて

参考文献

パイプライン・テーブル・ファンクション
 

native plsqlはplsql functionを1つのみ書けばOK。native plsql覚えるか。

津島博士のパフォーマンス講座 第25回 良いSQLについて(4)

とりあえず、パイプライン・ファンクション作ってみた

カーソルのオープンクローズは暗黙的にあーだこーだってやつかな。省けるのはいいね。


コード表示


DROP TABLE test___item___ PURGE;
CREATE TABLE test___item___ ( rn NUMBER  ,nm VARCHAR2(20 BYTE) ); 
INSERT INTO test___item___ (rn,nm) VALUES (100,'Cookies');
INSERT INTO test___item___ (rn,nm) VALUES (200,'Brownies');
INSERT INTO test___item___ (rn,nm) VALUES (300,'Pancakes');
COMMIT;
/

DROP TYPE item_liz;
/
DROP TYPE item;
/
CREATE OR REPLACE TYPE item IS OBJECT(rn NUMBER, nm VARCHAR2(20));
/
CREATE OR REPLACE TYPE item_liz IS TABLE OF item;
/

CREATE OR REPLACE FUNCTION test___ppl___(p_csr SYS_REFCURSOR) RETURN item_liz PIPELINED IS
	rec test___item___%rowtype;
	BEGIN
		LOOP
			FETCH p_csr INTO rec;
			EXIT WHEN p_csr%notfound;
			PIPE ROW(item(rec.rn,rec.nm));
		END LOOP;
		RETURN;
	END;
/

カーソル式でかましてからファンクションに渡して返却されてきたコレクションをtableでキュッとする。


コード表示


SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___)));



コード表示


[oracle@centos7 ~]$ docker exec -it orcl_18cr3_1 bash
[oracle@f285aba0589a ~]$ sqlplus aine/ORACLE_PWD@pdb1

SQL*Plus: Release 18.0.0.0.0 - Production on Mon Mar 18 23:14:35 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Last Successful login time: Mon Mar 18 2019 21:33:50 +09:00

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

AINE@pdb1> SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___)));

           RN NM
------------- --------------------
          100 Cookies
          200 Brownies
          300 Pancakes

3 rows selected.

Elapsed: 00:00:00.01

実行計画みてみる


コード表示


ALTER SESSION SET STATISTICS_LEVEL = ALL;

SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___)));

SET LINESIZE 300;
SET PAGESIZE 1000;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(format => 'ALL ALLSTATS LAST ADAPTIVE'));

テーブル・ファンクション処理はCOLLECTION ITERATOR PICKLER FETCHと出力されるそう

Oracle DatabaseでSQLの性能計測2(DBMS_XPLAN&DBMS_SQLTUNE編)【Oracle Database or GoldenGate Advent Calendar 2018 Day 8】
 
 


コード表示


SQL_ID  7yq95vy4kkd1c, child number 3
-------------------------------------
SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___)))
 
Plan hash value: 2260397670
 
----------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                         | Name           | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers |
----------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                  |                |      1 |        |       |    29 (100)|          |      3 |00:00:00.01 |       9 |
|   1 |  COLLECTION ITERATOR PICKLER FETCH| TEST___PPL___  |      1 |   8168 | 16336 |    29   (0)| 00:00:01 |      3 |00:00:00.01 |       9 |
|   2 |   TABLE ACCESS FULL               | TEST___ITEM___ |      0 |      3 |    75 |     3   (0)| 00:00:01 |      0 |00:00:00.01 |       0 |
----------------------------------------------------------------------------------------------------------------------------------------------
 
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
 
   1 - SEL$F5BB74E1 / KOKBF$0@SEL$2
   2 - SEL$3        / TEST___ITEM___@SEL$3
 
Column Projection Information (identified by operation id):
-----------------------------------------------------------
 
   1 - VALUE(A0)[22], VALUE(A0)[20]
   2 - "TEST___ITEM___"."RN"[NUMBER,22], "TEST___ITEM___"."NM"[VARCHAR2,20]
 
Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
 

とりあえず、パイプライン・ファンクション作ってみたけど、なにそれなにができるの

ETL (Extract Transform Load) 的な一連の処理結果を受け取ることができるぽい。


コード表示


CREATE OR REPLACE TYPE item IS OBJECT(rn NUMBER, nm VARCHAR2(20));
/

CREATE OR REPLACE TYPE item_liz IS TABLE OF item;
/

CREATE OR REPLACE FUNCTION test___ppl___(p_csr SYS_REFCURSOR) RETURN item_liz PIPELINED IS
	rec test___item___%rowtype;
	BEGIN
		LOOP
			--Extract
			FETCH p_csr INTO rec;
			EXIT WHEN p_csr%notfound;
			--Transform
			rec.nm := upper(rec.nm);
			--Load
			PIPE ROW(item(rec.rn,rec.nm));
		END LOOP;
		RETURN;
	END;
/

大文字にしただけだ


コード表示


AINE@pdb1> SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___)));

           RN NM
------------- --------------------
          100 COOKIES
          200 BROWNIES
          300 PANCAKES

3 rows selected.

Elapsed: 00:00:00.01

table functionかませば、他のテーブルとも普通に結合できる。テーブルと同じように扱えるんだってしっておく


コード表示


SELECT s1.rn,s2.nm AS bef,s1.nm AS aft FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___))) s1,test___item___ s2 WHERE s1.rn = s2.rn;

AINE@pdb1> SELECT s1.rn,s2.nm AS bef,s1.nm AS aft FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___))) s1,test___item___ s2 WHERE s1.rn = s2.rn;

           RN BEF                  AFT
------------- -------------------- --------------------
          100 Cookies              COOKIES
          200 Brownies             BROWNIES
          300 Pancakes             PANCAKES

3 rows selected.

Elapsed: 00:00:00.01

実行計画。こっちのほうがselect rn,nm as bef,upper(nm) as aft from test___item___;よりもcostとかおおきくなるのはね。


コード表示


SQL_ID  bq7c4g2ua84kg, child number 0
-------------------------------------
SELECT s1.rn,s2.nm as bef,s1.nm as aft FROM 
TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___))) 
s1,test___item___ s2 where s1.rn = s2.rn
 
Plan hash value: 2243294319
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                          | Name           | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   |IN-OUT| A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                   |                |      1 |        |       |    32 (100)|          |      |      3 |00:00:00.01 |      16 |       |       |          |
|*  1 |  HASH JOIN                         |                |      1 |   8168 |   215K|    32   (0)| 00:00:01 |      |      3 |00:00:00.01 |      16 |  1744K|  1744K|  829K (0)|
|   2 |   TABLE ACCESS FULL                | TEST___ITEM___ |      1 |      3 |    75 |     3   (0)| 00:00:01 |      |      3 |00:00:00.01 |       7 |       |       |          |
|   3 |   COLLECTION ITERATOR PICKLER FETCH| TEST___PPL___  |      1 |   8168 | 16336 |    29   (0)| 00:00:01 |      |      3 |00:00:00.01 |       9 |       |       |          |
|   4 |    TABLE ACCESS FULL               | TEST___ITEM___ |      0 |      3 |    75 |     3   (0)| 00:00:01 | PCWP |      0 |00:00:00.01 |       0 |       |       |          |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
 
   1 - SEL$F5BB74E1
   2 - SEL$F5BB74E1 / S2@SEL$1
   3 - SEL$F5BB74E1 / KOKBF$0@SEL$2
   4 - SEL$3        / TEST___ITEM___@SEL$3
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - access("S2"."RN"=VALUE(KOKBF$))
 
Column Projection Information (identified by operation id):
-----------------------------------------------------------
 
   1 - (#keys=1) "S2"."NM"[VARCHAR2,20], VALUE(A0)[22], VALUE(A0)[20]
   2 - (rowset=256) "S2"."RN"[NUMBER,22], "S2"."NM"[VARCHAR2,20]
   3 - VALUE(A0)[22], VALUE(A0)[20]
   4 - "TEST___ITEM___"."RN"[NUMBER,22], "TEST___ITEM___"."NM"[VARCHAR2,20]
 
Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
 

ちなみにparallelだとこんなかんじにかけたりする

今は用途は見えてこない。が、移行時に役立つと信じている。あとでやる。pragma autonomous_transactionとかとコラボすれば、多分いい感じになる。


コード表示



DROP TABLE test___item___ PURGE;
CREATE TABLE test___item___ ( rn NUMBER  ,nm VARCHAR2(20 BYTE) ); 
INSERT INTO test___item___ (rn,nm) VALUES (100,'Cookies');
INSERT INTO test___item___ (rn,nm) VALUES (200,'Brownies');
INSERT INTO test___item___ (rn,nm) VALUES (300,'Pancakes');
COMMIT;
/
DROP TYPE item_liz;
/
DROP TYPE item;
/
CREATE OR REPLACE TYPE item IS OBJECT(rn NUMBER, nm VARCHAR2(20));
/
CREATE OR REPLACE TYPE item_liz IS TABLE OF item;
/
CREATE OR REPLACE FUNCTION test___ppl_prl___(p_csr SYS_REFCURSOR) RETURN item_liz PIPELINED PARALLEL_ENABLE (PARTITION p_csr by any) IS
	rec test___item___%rowtype;
	BEGIN
		LOOP
			FETCH p_csr INTO rec;
			--Extract
			EXIT WHEN p_csr%notfound;
			--Transform
			rec.nm := upper(rec.nm);
			--Load
			PIPE ROW(item(rec.rn,rec.nm));
		END LOOP;
		RETURN;
	END;
/

相関意識すればselect句にもかけたりする。


コード表示


SELECT s1.*,test___ppl___(CURSOR(SELECT * FROM test___item___ s2 WHERE s1.rn = s2.rn)) AS liz FROM test___item___ s1;

SELECT s1.*,test___ppl_prl___(CURSOR(SELECT * FROM test___item___ s2 WHERE s1.rn = s2.rn)) AS liz FROM test___item___ s1;



コード表示


AINE@pdb1> SELECT s1.*,test___ppl___(CURSOR(SELECT * FROM test___item___ s2 WHERE s1.rn = s2.rn)) AS liz FROM test___item___ s1;

           RN NM                   LIZ(RN, NM)
------------- -------------------- ----------------------------------------------------------------------------------------------------
          100 Cookies              ITEM_LIZ(ITEM(100, 'Cookies'))
          200 Brownies             ITEM_LIZ(ITEM(200, 'Brownies'))
          300 Pancakes             ITEM_LIZ(ITEM(300, 'Pancakes'))

3 rows selected.

Elapsed: 00:00:00.01

AINE@pdb1> SELECT s1.*,test___ppl_prl___(CURSOR(SELECT * FROM test___item___ s2 WHERE s1.rn = s2.rn)) AS liz FROM test___item___ s1;

           RN NM                   LIZ(RN, NM)
------------- -------------------- ----------------------------------------------------------------------------------------------------
          100 Cookies              ITEM_LIZ(ITEM(100, 'COOKIES'))
          200 Brownies             ITEM_LIZ(ITEM(200, 'BROWNIES'))
          300 Pancakes             ITEM_LIZ(ITEM(300, 'PANCAKES'))

3 rows selected.

Elapsed: 00:00:00.00

あとはcursor式の使い勝手としては流し込む量をwhere句で絞ってから投入できるとこかな。流し込んでから絞ってもいいとは思うけど、処理量をどの段階で絞るかを意識することが大事。insert-select merge bulk collect parallel hint とかとかと比較してみるとか。


コード表示


SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___ where rn < 200))) s1,test___item___ s2 WHERE s1.rn = s2.rn;

SELECT * FROM TABLE(test___ppl_prl___(CURSOR(SELECT * FROM test___item___ where rn < 200))) s1,test___item___ s2 WHERE s1.rn = s2.rn;



コード表示


AINE@pdb1> SELECT * FROM TABLE(test___ppl___(CURSOR(SELECT * FROM test___item___ where rn < 200))) s1,test___item___ s2 WHERE s1.rn = s2.rn;

           RN NM                              RN NM
------------- -------------------- ------------- --------------------
          100 Cookies                        100 Cookies

1 row selected.

Elapsed: 00:00:00.01

AINE@pdb1> SELECT * FROM TABLE(test___ppl_prl___(CURSOR(SELECT * FROM test___item___ where rn < 200))) s1,test___item___ s2 WHERE s1.rn = s2.rn;

           RN NM                              RN NM
------------- -------------------- ------------- --------------------
          100 COOKIES                        100 Cookies

1 row selected.

Elapsed: 00:00:00.00

これからのための情報収集

いい記事見つけた。DBmagazine読んだことなかったいままで。

Oracle - 日本エクセム
 
Pipelined Table Functions
 

いい動画見つけた。sleepいいね。

Efficient Function Calls From SQL (Part 5) : Pipelined Table Functions
 

sleepといえばあの記事!このsleep使いようによっては面白いことできそうなんだよなってずっと思っている。時間どうにか確保して作れ。

DBMS_LOCK.SLEEPの代替SQLをいろいろ考えてみよう(Oracle)
 

type周り具体例交えてあって分かりやすい!!!

12cからレコード型のコレクションでもテーブル表現が使えるぞ (Oracle)
 

移行作業時、このログの吐き方いいよなー。linuxのpackage展開とかしているときのインジケータみたいなの作れそうってずっと思っている。あと何分で終わるかって重要。時間どうにか確保して作れ。

Bulk Binds (BULK COLLECT & FORALL) and Record Processing in Oracle
 

パラレル処理の動き

How Parallel Execution Works
 

オブジェクトタイプなんだろうな使いやすいのはきっと

ディクショナリから動的にcreate or replace 文作成する。

How Parallel Execution WorksPL/SQL で例外が発生しても処理を継続させる
 


コード表示


DROP TABLE test___src___ PURGE;
CREATE TABLE test___src___ AS WITH src AS ( SELECT LEVEL AS rn FROM dual CONNECT BY LEVEL <= 1000 ) SELECT s1.rn  ,dbms_random.STRING('X',5) AS str FROM src s1; 
DROP TABLE test___tar___ PURGE;
CREATE TABLE test___tar___ AS SELECT * FROM test___src___ WHERE 1 <> 1;

SELECT COUNT(*) FROM test___src___;
SELECT COUNT(*) FROM test___tar___;


権限不足??


コード表示


SET SERVEROUTPUT ON

CREATE OR REPLACE PROCEDURE create_obj_type AS

	CURSOR csr IS WITH sub AS (
		SELECT
			table_name
			, to_clob('create or replace type '
			            || table_name
			            || 'typ is object('
			            || RTRIM(XMLAGG(XMLELEMENT(E, column_name
			                                                || ' '
			                                                || data_type
			                                                || '('
			                                                || data_length
			                                                || ')', ',').EXTRACT('//text()') ).getclobval(), ',')
			            || ')') AS create_obj_typ
			, to_clob('create or replace type '
			            || table_name
			            || 'liz is table of '
			            || table_name
			            || 'typ') AS create_liz
			, to_clob('drop type '
			            || table_name
			            || 'liz') AS drop_liz
			, to_clob('drop type '
			            || table_name
			            || 'typ') AS drop_obj_typ
		FROM
			user_tab_columns
		GROUP BY
			table_name
	) SELECT
		vals
	  FROM
		sub UNPIVOT ( vals
			FOR cols
		IN ( create_obj_typ
		, create_liz
		, drop_liz
		, drop_obj_typ ) )
	ORDER BY
		CASE
			WHEN cols LIKE 'DROP%' THEN 1
			ELSE NULL
		END
		, table_name
		, CASE
				WHEN cols LIKE '%OBJ_TYP' THEN 1
				ELSE NULL
			END
		, table_name;

	build_sql   CLOB;
BEGIN
	build_sql := to_clob(' ');
	OPEN csr;
	LOOP
		BEGIN
			FETCH csr INTO build_sql;
			EXIT WHEN csr%notfound;
			dbms_output.put_line(build_sql);
			EXECUTE IMMEDIATE build_sql;
			EXCEPTION WHEN OTHERS THEN dbms_output.put_line('[ '|| SQLCODE||']'||sqlerrm);
		END;
	END LOOP;
	CLOSE csr;
END;
/

EXEC create_obj_type;
/

権限不足??所有者権限とか実行者権限とかかな

role_sys_privs SESSION_PRIVS USER_TAB_PRIVS_RECD USER_TAB_PRIVS_MADE SESSION_ROLESらへんをいい感じにまとめて一覧化するsqlかく

個々のテーブルがSELECT可能でもビュー化するとコンパイルできないことがある。 個々の SQL が直接実行可能でもストアド・サブプログラム化するとコンパイルできないことがある。 主な理由はロールによる権限が無効化されることを忘れているため。 DBA ロールユーザだとよくやってしまう。(SELECT ANY TABLE権限では足りない) 実行ユーザーには個別に各種権限の付与を行っておく必要がある。らしいので、調べる。

で結局、BEQUEATH VIEWってなんなのさ?(Oracle)
 


コード表示


drop type TEST___SRC___typ
[ -4043]ORA-04043: オブジェクトTEST___SRC___TYPは存在しません。
drop type TEST___SRC___liz
[ -4043]ORA-04043: オブジェクトTEST___SRC___LIZは存在しません。
drop type TEST___TAR___typ
[ -4043]ORA-04043: オブジェクトTEST___TAR___TYPは存在しません。
drop type TEST___TAR___liz
[ -4043]ORA-04043: オブジェクトTEST___TAR___LIZは存在しません。
create or replace type TEST___SRC___typ is object(RN NUMBER(22),STR VARCHAR2(4000))
[ -1031]ORA-01031: 権限が不足しています
create or replace type TEST___SRC___liz is table of TEST___SRC___typ
[ -1031]ORA-01031: 権限が不足しています
create or replace type TEST___TAR___typ is object(RN NUMBER(22),STR VARCHAR2(4000))
[ -1031]ORA-01031: 権限が不足しています
create or replace type TEST___TAR___liz is table of TEST___TAR___typ
[ -1031]ORA-01031: 権限が不足しています


PL/SQLプロシージャが正常に完了しました。