"{ package:'stx:libjava' }"
|files|
'loading package stx:libjava ...' printCR.
Scanner allowDollarInIdentifier:true.
"/
"/ base system
"/
files := #(
'Java'
'JavaVM'
'JavaConstantPool'
'JavaSlotIndexCache'
'JavaObject'
'JavaClass'
'JavaMethod'
'JavaMethodWithException'
'JavaMethodWithHandler'
'JavaNativeMethod'
'JavaContext'
'JavaProcess'
'JavaClassReader'
'JavaDecompiler'
'JavaExceptionTableEntry'
'JavaLocalVariableTable'
'JavaLocalVariableTableEntry'
'JavaRef'
'JavaClassRef'
'JavaField'
'JavaFieldref'
'JavaMethodref'
'JavaInterfaceMethodref'
'JavaNameandType'
'JavaClassPointerRef'
'JavaBuiltInClassPointerRef'
'JavaUnresolvedConstant'
'JavaUnresolvedRefConstant'
'JavaUnresolvedClassConstant'
'JavaUnresolvedFieldrefConstant'
'JavaUnresolvedMethodrefConstant'
'JavaUnresolvedInterfaceMethodrefConstant'
'JavaUnresolvedNameandTypeConstant'
'JavaUnresolvedStringConstant'
'JavaView'
'JavaTopView'
'JavaPopUpView'
'JavaEmbeddedFrameView'
'SmalltalkAppletContext'
'SmalltalkAppletStub'
).
(Smalltalk loadClassLibraryIfAbsent:'libjava') ifTrue:[
|handle loaded|
loaded := OrderedCollection new.
handle := ObjectFileLoader loadedObjectHandles
detect:[:h | |cls|
cls := h classes firstIfEmpty:nil.
cls notNil and:[cls package = 'stx:libjava']
]
ifNone:nil.
handle notNil ifTrue:[
handle classes do:[:c| c isMeta ifFalse:[loaded add:c classFilename]].
].
files := files asOrderedCollection.
loaded do:[:f| files remove:f ifAbsent:[]].
].
files size > 0 ifTrue:[
files do:[:s|
'.' print.
Smalltalk fileIn:s.
].
' ' printCR.
].
'done (stx:libjava).' printCR.
!