213 initAllClasses |
213 initAllClasses |
214 | system | |
214 | system | |
215 |
215 |
216 FailedToLoadClasses := nil. |
216 FailedToLoadClasses := nil. |
217 self initAllStaticFields. |
217 self initAllStaticFields. |
218 system := JavaVM classForName: 'java.lang.System'. |
218 system := JavaVM classForName:'java.lang.System' definedBy:nil. |
219 system isInitialized ifFalse: [ self initSystemClass. ]. |
219 system isInitialized ifFalse: [ self initSystemClass. ]. |
220 self allClassesDo: [:cls | cls isInitialized ifFalse: [ cls classInit ] ] |
220 self allClassesDo: [:cls | cls isInitialized ifFalse: [ cls classInit ] ] |
221 |
221 |
222 " |
222 " |
223 Java initAllClasses" |
223 Java initAllClasses" |
232 ! |
232 ! |
233 |
233 |
234 initSystemClass |
234 initSystemClass |
235 | system | |
235 | system | |
236 |
236 |
237 system := JavaVM classForName: 'java.lang.System'. |
237 system := JavaVM classForName:'java.lang.System' definedBy:nil. |
238 system isNil ifTrue: [ |
238 system isNil ifTrue: [ |
239 "/ JavaVM initializeVM. |
239 "/ JavaVM initializeVM. |
240 "/ system := Java at:'java.lang.System'. |
240 "/ system := Java at:'java.lang.System'. |
241 "/ system isNil ifTrue:[ |
241 "/ system isNil ifTrue:[ |
242 self warn: 'JavaVM: no ''' , 'java.lang.System' allBold , ''' class.'. |
242 self warn: 'JavaVM: no ''' , 'java.lang.System' allBold , ''' class.'. |
974 JavaVM booted ifFalse: [ ^ self ]. |
974 JavaVM booted ifFalse: [ ^ self ]. |
975 |
975 |
976 scl := JavaVM systemClassLoader. |
976 scl := JavaVM systemClassLoader. |
977 scl isNil ifTrue:[ ^self ]. |
977 scl isNil ifTrue:[ ^self ]. |
978 |
978 |
979 urls := (Java classForName:'java.net.URL') javaArrayClass new: classPath size. |
979 urls := (JavaVM classForName:'java.net.URL' definedBy:nil) javaArrayClass new: classPath size. |
980 classPath withIndexDo:[:element :index| |
980 classPath withIndexDo:[:element :index| |
981 | path file url | |
981 | path file url | |
982 path := Java as_String: element pathName. |
982 path := Java as_String: element pathName. |
983 file := ((JavaVM at: 'java.io.File') new) |
983 file := ((JavaVM at: 'java.io.File') new) |
984 perform: #'<init>(Ljava/lang/String;)V' with: path; |
984 perform: #'<init>(Ljava/lang/String;)V' with: path; |
985 yourself. |
985 yourself. |
986 url := file perform: #'toURL()Ljava/net/URL;'. |
986 url := file perform: #'toURL()Ljava/net/URL;'. |
987 urls at: index put: url |
987 urls at: index put: url |
988 ]. |
988 ]. |
989 ucp := (Java classForName:'sun.misc.URLClassPath') new. |
989 ucp := (Java classForName:'sun.misc.URLClassPath') new. |
990 ucp perform: #'<init>([Ljava/net/URL;)V' with: urls. |
990 ucp perform: #'<init>([Ljava/net/URL;)V' with: urls. |
991 scl instVarNamed: #ucp put: ucp. |
991 scl instVarNamed: #ucp put: ucp. |
992 |
992 |
993 "Created: / 02-08-2012 / 16:04:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
993 "Created: / 02-08-2012 / 16:04:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
994 "Modified: / 07-05-2013 / 11:20:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
994 ! |
995 ! |
995 |
996 |
996 effectiveExtensionsPathForRelease: aRelease |
997 effectiveExtensionsPathForRelease: aRelease |
997 |
998 |
998 ^ (ExtensionsPath ? #()) , |
999 ^ (ExtensionsPath ? #()) , |