Java AI Interface for Spring
Moderators: hoijui, Moderators
Re: Java AI Interface for Spring
P:/Programme/Java/jdk1.6.0_03 but _05 is specified in the instructions?
Re: Java AI Interface for Spring
whether using jdk1.6.0_03 or _05 should not make a difference at all, as these revisions are just for bug-fixing, so you can always use the latest (though JAI worked for me with _03).
i can not help you with the stuff from infolog alone. could you please attach all the log files in Bot-libs/JAI/log, plus possibly hotspot.log (in the spring main folder)? if there is one, please send also the hs*.log.
thanks!
i can not help you with the stuff from infolog alone. could you please attach all the log files in Bot-libs/JAI/log, plus possibly hotspot.log (in the spring main folder)? if there is one, please send also the hs*.log.
thanks!
Re: Java AI Interface for Spring
somethign else:
i think the next version of JAI will be using the new AI C interface. i think i will have 2 interfaces, one with handleMessage, and posibly one that is quite like the current one, using the other interfaec with handleMessage behind the scenes.
i think the next version of JAI will be using the new AI C interface. i think i will have 2 interfaces, one with handleMessage, and posibly one that is quite like the current one, using the other interfaec with handleMessage behind the scenes.
Re: Java AI Interface for Spring
I did include the
native-log.txt
native-SWIG-log.txt
were the only 2 I had.
JVM did not fail so no JVM log.
logs.Bot-libs/JAI/log
native-log.txt
native-SWIG-log.txt
were the only 2 I had.
JVM did not fail so no JVM log.
Re: Java AI Interface for Spring
as you jvm logging enabled, it should log even if the JVM does not crash, no hs*log, but hotspot.log.
did you use hoijui.jar for testing?
to be honest, i dont think i will be able to find out what is wrong :/
did you use hoijui.jar for testing?
to be honest, i dont think i will be able to find out what is wrong :/
Re: Java AI Interface for Spring
hotspot.log is only created for the debug VM. So no it was not generated.
Re: Java AI Interface for Spring
Well I could solve the problem, but it will probably be a while since I just want to use some of my generic game AI's I developed for other games in Spring.
Re: Java AI Interface for Spring
I ran it again with the debug VM for the hotspot.log
<?xml version='1.0' encoding='UTF-8'?>
<hotspot_log version='160 1' process='1008' time_ms='1214434775639'>
<vm_version>
<name>
Java HotSpot(TM) Client VM
</name>
<release>
10.0-b19
</release>
<info>
Java HotSpot(TM) Client VM (10.0-b19) for windows-x86 JRE (1.6.0_05-b13), built on Feb 22 2008 01:16:53 by "java_re" with MS VC++ 7.1
</info>
</vm_version>
<vm_arguments>
<args>
-Djava.library.path=AI/Bot-libs/JAI;AI/Bot-libs/JAI/lib -Xms4M -Xmx64M -Xss512K -Xoss400K -verbose:jni -Xcheck:jni -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput
</args>
<launcher>
generic
</launcher>
<properties>
java.vm.specification.version=1.0
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.version=10.0-b19
java.vm.name=Java HotSpot(TM) Client VM
java.vm.vendor=Sun Microsystems Inc.
java.vm.info=mixed mode, sharing
java.ext.dirs=C:\jdk\1.6.0\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
java.endorsed.dirs=C:\jdk\1.6.0\jre\lib\endorsed
sun.boot.library.path=C:\jdk\1.6.0\jre\bin
java.library.path=AI/Bot-libs/JAI;AI/Bot-libs/JAI/lib
java.home=C:\jdk\1.6.0\jre
java.class.path=AI/Bot-libs/JAI/JAI.jar;AI/Bot-libs/JAI;AI/Bot-libs/JAI/lib/commons-lang-2.4.jar;AI/Bot-libs/JAI/lib/commons-logging-1.1.1.jar;AI/Bot-libs/JAI/lib/log4j-1.2.15.jar;AI/Bot-libs/JAI/lib/vecmath.jar;AI/Bot-libs/hoijui.jar;AI/Bot-libs/tst.jar
sun.boot.class.path=C:\jdk\1.6.0\jre\lib\resources.jar;C:\jdk\1.6.0\jre\lib\rt.jar;C:\jdk\1.6.0\jre\lib\sunrsasign.jar;C:\jdk\1.6.0\jre\lib\jsse.jar;C:\jdk\1.6.0\jre\lib\jce.jar;C:\jdk\1.6.0\jre\lib\charsets.jar;C:\jdk\1.6.0\jre\classes
</properties>
</vm_arguments>
<tty>
Checked JNI functions are being used to validate JNI usage
<writer thread='2904'/>
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]
[Registering JNI native method java.lang.System.arraycopy]
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI]
[Registering JNI native method java.lang.Thread.start0]
[Registering JNI native method java.lang.Thread.stop0]
[Registering JNI native method java.lang.Thread.isAlive]
[Registering JNI native method java.lang.Thread.suspend0]
[Registering JNI native method java.lang.Thread.resume0]
[Registering JNI native method java.lang.Thread.setPriority0]
[Registering JNI native method java.lang.Thread.yield]
[Registering JNI native method java.lang.Thread.sleep]
[Registering JNI native method java.lang.Thread.currentThread]
[Registering JNI native method java.lang.Thread.countStackFrames]
[Registering JNI native method java.lang.Thread.interrupt0]
[Registering JNI native method java.lang.Thread.isInterrupted]
[Registering JNI native method java.lang.Thread.holdsLock]
[Registering JNI native method java.lang.Thread.getThreads]
[Registering JNI native method java.lang.Thread.dumpThreads]
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI]
[Registering JNI native method java.lang.Class.getName0]
[Registering JNI native method java.lang.Class.getSuperclass]
[Registering JNI native method java.lang.Class.getInterfaces]
[Registering JNI native method java.lang.Class.getClassLoader0]
[Registering JNI native method java.lang.Class.isInterface]
[Registering JNI native method java.lang.Class.getSigners]
[Registering JNI native method java.lang.Class.setSigners]
[Registering JNI native method java.lang.Class.isArray]
[Registering JNI native method java.lang.Class.isPrimitive]
[Registering JNI native method java.lang.Class.getComponentType]
[Registering JNI native method java.lang.Class.getModifiers]
[Registering JNI native method java.lang.Class.getDeclaredFields0]
[Registering JNI native method java.lang.Class.getDeclaredMethods0]
[Registering JNI native method java.lang.Class.getDeclaredConstructors0]
[Registering JNI native method java.lang.Class.getProtectionDomain0]
[Registering JNI native method java.lang.Class.setProtectionDomain0]
[Registering JNI native method java.lang.Class.getDeclaredClasses0]
[Registering JNI native method java.lang.Class.getDeclaringClass]
[Registering JNI native method java.lang.Class.getGenericSignature]
[Registering JNI native method java.lang.Class.getRawAnnotations]
[Registering JNI native method java.lang.Class.getConstantPool]
[Registering JNI native method java.lang.Class.desiredAssertionStatus0]
[Registering JNI native method java.lang.Class.getEnclosingMethod0]
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI]
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI]
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI]
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
[Dynamic-linking native method java.lang.System.initProperties ... JNI]
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.set ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI]
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI]
[Registering JNI native method sun.misc.Unsafe.getLoadAverage]
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI]
[Registering JNI native method sun.misc.Unsafe.setMemory]
[Registering JNI native method sun.misc.Unsafe.copyMemory]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.allocateInstance]
[Registering JNI native method sun.misc.Unsafe.monitorEnter]
[Registering JNI native method sun.misc.Unsafe.monitorExit]
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter]
[Registering JNI native method sun.misc.Unsafe.throwException]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong]
[Registering JNI native method sun.misc.Unsafe.putOrderedObject]
[Registering JNI native method sun.misc.Unsafe.putOrderedInt]
[Registering JNI native method sun.misc.Unsafe.putOrderedLong]
[Registering JNI native method sun.misc.Unsafe.park]
[Registering JNI native method sun.misc.Unsafe.unpark]
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI]
[Dynamic-linking native method java.lang.String.intern ... JNI]
[Dynamic-linking native method java.lang.System.setIn0 ... JNI]
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI]
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI]
[Dynamic-linking native method java.lang.Object.getClass ... JNI]
[Dynamic-linking native method java.lang.Class.forName0 ... JNI]
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI]
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI]
[Dynamic-linking native method sun.misc.VM.initialize ... JNI]
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI]
[Dynamic-linking native method java.lang.System.setOut0 ... JNI]
[Dynamic-linking native method java.lang.System.setErr0 ... JNI]
[Dynamic-linking native method java.io.FileSystem.getFileSystem ... JNI]
[Dynamic-linking native method java.io.Win32FileSystem.initIDs ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.initIDs ... JNI]
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.getBooleanAttributes ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.canonicalize0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI]
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI]
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI]
[Dynamic-linking native method sun.io.Win32ErrorMode.setErrorMode ... JNI]
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.io.FileInputStream.open ... JNI]
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI]
[Dynamic-linking native method java.io.FileInputStream.available ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI]
[Dynamic-linking native method java.io.ObjectStreamClass.initNative ... JNI]
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.list ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.canonicalizeWithPrefix0 ... JNI]
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
<?xml version='1.0' encoding='UTF-8'?>
<hotspot_log version='160 1' process='1008' time_ms='1214434775639'>
<vm_version>
<name>
Java HotSpot(TM) Client VM
</name>
<release>
10.0-b19
</release>
<info>
Java HotSpot(TM) Client VM (10.0-b19) for windows-x86 JRE (1.6.0_05-b13), built on Feb 22 2008 01:16:53 by "java_re" with MS VC++ 7.1
</info>
</vm_version>
<vm_arguments>
<args>
-Djava.library.path=AI/Bot-libs/JAI;AI/Bot-libs/JAI/lib -Xms4M -Xmx64M -Xss512K -Xoss400K -verbose:jni -Xcheck:jni -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput
</args>
<launcher>
generic
</launcher>
<properties>
java.vm.specification.version=1.0
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.version=10.0-b19
java.vm.name=Java HotSpot(TM) Client VM
java.vm.vendor=Sun Microsystems Inc.
java.vm.info=mixed mode, sharing
java.ext.dirs=C:\jdk\1.6.0\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
java.endorsed.dirs=C:\jdk\1.6.0\jre\lib\endorsed
sun.boot.library.path=C:\jdk\1.6.0\jre\bin
java.library.path=AI/Bot-libs/JAI;AI/Bot-libs/JAI/lib
java.home=C:\jdk\1.6.0\jre
java.class.path=AI/Bot-libs/JAI/JAI.jar;AI/Bot-libs/JAI;AI/Bot-libs/JAI/lib/commons-lang-2.4.jar;AI/Bot-libs/JAI/lib/commons-logging-1.1.1.jar;AI/Bot-libs/JAI/lib/log4j-1.2.15.jar;AI/Bot-libs/JAI/lib/vecmath.jar;AI/Bot-libs/hoijui.jar;AI/Bot-libs/tst.jar
sun.boot.class.path=C:\jdk\1.6.0\jre\lib\resources.jar;C:\jdk\1.6.0\jre\lib\rt.jar;C:\jdk\1.6.0\jre\lib\sunrsasign.jar;C:\jdk\1.6.0\jre\lib\jsse.jar;C:\jdk\1.6.0\jre\lib\jce.jar;C:\jdk\1.6.0\jre\lib\charsets.jar;C:\jdk\1.6.0\jre\classes
</properties>
</vm_arguments>
<tty>
Checked JNI functions are being used to validate JNI usage
<writer thread='2904'/>
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]
[Registering JNI native method java.lang.System.arraycopy]
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI]
[Registering JNI native method java.lang.Thread.start0]
[Registering JNI native method java.lang.Thread.stop0]
[Registering JNI native method java.lang.Thread.isAlive]
[Registering JNI native method java.lang.Thread.suspend0]
[Registering JNI native method java.lang.Thread.resume0]
[Registering JNI native method java.lang.Thread.setPriority0]
[Registering JNI native method java.lang.Thread.yield]
[Registering JNI native method java.lang.Thread.sleep]
[Registering JNI native method java.lang.Thread.currentThread]
[Registering JNI native method java.lang.Thread.countStackFrames]
[Registering JNI native method java.lang.Thread.interrupt0]
[Registering JNI native method java.lang.Thread.isInterrupted]
[Registering JNI native method java.lang.Thread.holdsLock]
[Registering JNI native method java.lang.Thread.getThreads]
[Registering JNI native method java.lang.Thread.dumpThreads]
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI]
[Registering JNI native method java.lang.Class.getName0]
[Registering JNI native method java.lang.Class.getSuperclass]
[Registering JNI native method java.lang.Class.getInterfaces]
[Registering JNI native method java.lang.Class.getClassLoader0]
[Registering JNI native method java.lang.Class.isInterface]
[Registering JNI native method java.lang.Class.getSigners]
[Registering JNI native method java.lang.Class.setSigners]
[Registering JNI native method java.lang.Class.isArray]
[Registering JNI native method java.lang.Class.isPrimitive]
[Registering JNI native method java.lang.Class.getComponentType]
[Registering JNI native method java.lang.Class.getModifiers]
[Registering JNI native method java.lang.Class.getDeclaredFields0]
[Registering JNI native method java.lang.Class.getDeclaredMethods0]
[Registering JNI native method java.lang.Class.getDeclaredConstructors0]
[Registering JNI native method java.lang.Class.getProtectionDomain0]
[Registering JNI native method java.lang.Class.setProtectionDomain0]
[Registering JNI native method java.lang.Class.getDeclaredClasses0]
[Registering JNI native method java.lang.Class.getDeclaringClass]
[Registering JNI native method java.lang.Class.getGenericSignature]
[Registering JNI native method java.lang.Class.getRawAnnotations]
[Registering JNI native method java.lang.Class.getConstantPool]
[Registering JNI native method java.lang.Class.desiredAssertionStatus0]
[Registering JNI native method java.lang.Class.getEnclosingMethod0]
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI]
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI]
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI]
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
[Dynamic-linking native method java.lang.System.initProperties ... JNI]
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.set ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI]
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI]
[Registering JNI native method sun.misc.Unsafe.getLoadAverage]
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI]
[Registering JNI native method sun.misc.Unsafe.setMemory]
[Registering JNI native method sun.misc.Unsafe.copyMemory]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.allocateInstance]
[Registering JNI native method sun.misc.Unsafe.monitorEnter]
[Registering JNI native method sun.misc.Unsafe.monitorExit]
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter]
[Registering JNI native method sun.misc.Unsafe.throwException]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong]
[Registering JNI native method sun.misc.Unsafe.putOrderedObject]
[Registering JNI native method sun.misc.Unsafe.putOrderedInt]
[Registering JNI native method sun.misc.Unsafe.putOrderedLong]
[Registering JNI native method sun.misc.Unsafe.park]
[Registering JNI native method sun.misc.Unsafe.unpark]
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI]
[Dynamic-linking native method java.lang.String.intern ... JNI]
[Dynamic-linking native method java.lang.System.setIn0 ... JNI]
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI]
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI]
[Dynamic-linking native method java.lang.Object.getClass ... JNI]
[Dynamic-linking native method java.lang.Class.forName0 ... JNI]
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI]
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI]
[Dynamic-linking native method sun.misc.VM.initialize ... JNI]
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI]
[Dynamic-linking native method java.lang.System.setOut0 ... JNI]
[Dynamic-linking native method java.lang.System.setErr0 ... JNI]
[Dynamic-linking native method java.io.FileSystem.getFileSystem ... JNI]
[Dynamic-linking native method java.io.Win32FileSystem.initIDs ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.initIDs ... JNI]
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.getBooleanAttributes ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.canonicalize0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI]
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI]
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI]
[Dynamic-linking native method sun.io.Win32ErrorMode.setErrorMode ... JNI]
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.io.FileInputStream.open ... JNI]
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI]
[Dynamic-linking native method java.io.FileInputStream.available ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI]
[Dynamic-linking native method java.io.ObjectStreamClass.initNative ... JNI]
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.list ... JNI]
[Dynamic-linking native method java.io.WinNTFileSystem.canonicalizeWithPrefix0 ... JNI]
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
Checked JNI functions are being used to validate JNI usage
Re: Java AI Interface for Spring
Please use a pastebin instead of pasting masses of text and stretching the forum out
Re: Java AI Interface for Spring
hmm... :/ does not really help either :/
2 things:
* as AF mentioned already, for log files, it would be better to use either http://www.pastebin.com or attach the files as such to your posts, not copy the text into the post, as this is bad for the forum layout.
* as the JVM seems to load ok, there may be usefull info under AI/hoijui/log (if you use hoijui.jar for testing)
if we won't find the soon, i guess its easyer to wait till the new C interface is ready, and JAI ported to it (once the interface is ready, porting should take little time). possibly it will work then for you too.
2 things:
* as AF mentioned already, for log files, it would be better to use either http://www.pastebin.com or attach the files as such to your posts, not copy the text into the post, as this is bad for the forum layout.
* as the JVM seems to load ok, there may be usefull info under AI/hoijui/log (if you use hoijui.jar for testing)
if we won't find the soon, i guess its easyer to wait till the new C interface is ready, and JAI ported to it (once the interface is ready, porting should take little time). possibly it will work then for you too.
Re: Java AI Interface for Spring
Okay I have built it for 5956 and it works a little with minor hacks.
Issues:
1.
This method "bool CreateClassPath(char* classPath)" fails most of the time. I have not written c++ in a while so it was not clear to me why. Although, by replacing the body with: strcat(classPath, HACK_CLASS_PATH); it works everytime.
The HACK_CLASS_PATH is the same path used when it does work.
2. It also crashed here most of the time. I remarked this out in the "GetJNIEnv" method:
/*
for (i = 0; i < vm_args.nOptions; i++) {
delete vm_args.options.optionString;
}
delete vm_args.options;
*/
Okay with those two fixes it runs every load, but I get an Sync error and some of the commands crash. Specifically, 2,4, and 7 fail.
So I will paste bin the sync error with the hot spot. Also note before the fixes the JVM was not always loading.
I also noticed that you should use "#define SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON"
I would appreciate the SVN location of this stuff. The download page says it is in the SVN i.e., but I don't see it. I know it must be GPL since it uses GPL, but I would like to see that in the headers or a license file if your keeping it out of SVN.
Sync Error I get:
Sync warning: FPUCW 0x027F instead of 0x003A or 0x003F ("CGame::SimFrame")
Issues:
1.
This method "bool CreateClassPath(char* classPath)" fails most of the time. I have not written c++ in a while so it was not clear to me why. Although, by replacing the body with: strcat(classPath, HACK_CLASS_PATH); it works everytime.
The HACK_CLASS_PATH is the same path used when it does work.
2. It also crashed here most of the time. I remarked this out in the "GetJNIEnv" method:
/*
for (i = 0; i < vm_args.nOptions; i++) {
delete vm_args.options.optionString;
}
delete vm_args.options;
*/
Okay with those two fixes it runs every load, but I get an Sync error and some of the commands crash. Specifically, 2,4, and 7 fail.
So I will paste bin the sync error with the hot spot. Also note before the fixes the JVM was not always loading.
I also noticed that you should use "#define SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON"
I would appreciate the SVN location of this stuff. The download page says it is in the SVN i.e., but I don't see it. I know it must be GPL since it uses GPL, but I would like to see that in the headers or a license file if your keeping it out of SVN.
Sync Error I get:
Sync warning: FPUCW 0x027F instead of 0x003A or 0x003F ("CGame::SimFrame")
Re: Java AI Interface for Spring
NVM on the post bin. Since it is the same thing over and over.
Re: Java AI Interface for Spring
Wow, nice! 
thanks for that!
rightnow, i have no access to the code, but i will check some things when back home, especially about
there is no JAI source on the SVN, as i do not have write access to it, and it is also still not very stable, as you saw 
i will check the class-path stuff as well. what i did not understand, is what you mean with commands 2, 4 and 7. you mean Commandwith id=7 eg?
i already changed this part of the code:
cause itis not compatible with MinGW 4.
this leads us to the last thing, the sync error you get.
which OS and compiler do you use?
if you use MinGW 3 to compile JAI, and use spring from the buildbot (Which uses MinGW 4.2.1), this would explain the sync error.
we do not yet have a working description online of how to setup MinGW 4 on windows, to compile spring. on linux it is rather easy, to cross compile for windows (buildbot also cross-compiles on linux).
all these issues should vanish, once we have the new C AI interface working, as it should not matter anymore which compiler you use to compile JAI (or any other AI).
i will check everything on monday.

thanks for that!
rightnow, i have no access to the code, but i will check some things when back home, especially about
Code: Select all
#define SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON

i will check the class-path stuff as well. what i did not understand, is what you mean with commands 2, 4 and 7. you mean Commandwith id=7 eg?
i already changed this part of the code:
Code: Select all
for (i = 0; i < vm_args.nOptions; i++) {
delete vm_args.options[i].optionString;
}
delete vm_args.options;
this leads us to the last thing, the sync error you get.
which OS and compiler do you use?
if you use MinGW 3 to compile JAI, and use spring from the buildbot (Which uses MinGW 4.2.1), this would explain the sync error.
we do not yet have a working description online of how to setup MinGW 4 on windows, to compile spring. on linux it is rather easy, to cross compile for windows (buildbot also cross-compiles on linux).
all these issues should vanish, once we have the new C AI interface working, as it should not matter anymore which compiler you use to compile JAI (or any other AI).
i will check everything on monday.
Re: Java AI Interface for Spring
I was referring to the message commands to get the test AI to do something.
I am using MinGW 5.1.4 and, I also built Spring with it as well. Obviously. That could be a problem. I guess I should use MinGW 4.2.1. Were did you get the info on the auto build version. That should be on both build pages.
I usually only write Java now days, and I had steered away from MinGW and SCONS for a long time. I couldn't resist a Java AI link into Spring. Well anyways I used this for the build:
Vista and gcc version 3.4.5 (mingw-vista special r3)
Well you didn't say anything about the licensing. So I can't do anything until it is in SVN or a license file saying it is open.
I am using MinGW 5.1.4 and, I also built Spring with it as well. Obviously. That could be a problem. I guess I should use MinGW 4.2.1. Were did you get the info on the auto build version. That should be on both build pages.
I usually only write Java now days, and I had steered away from MinGW and SCONS for a long time. I couldn't resist a Java AI link into Spring. Well anyways I used this for the build:
Vista and gcc version 3.4.5 (mingw-vista special r3)
Well you didn't say anything about the licensing. So I can't do anything until it is in SVN or a license file saying it is open.
Re: Java AI Interface for Spring
Also, is the auto build using 3.4.5 gcc?
Re: Java AI Interface for Spring
The auto build of spring uses 4.2.1, there is no auto build of JAI, but my release was compiled with 3.4.5. So far, i always tested JAI with 3.4.5 (i also compiled spring with that) -> i did the same like you. if you compile JAI and spring with the same MinGW/gcc, it should not get sync errors.
About the licence: Sorry, am new to open source and did forget/not care about that so far. I though i would not put a licence until it is well usable, and then i would integrate it into spring main SVN. I could setup a project page with SVN, but i would prefer to port it to the C interface before doing big changes. i also don't really recommend doing an AI with it already, as it may change some after the port.
for small things: you can send them to me (by PM) also.
is it ok like this? or any other suggestion?
About the licence: Sorry, am new to open source and did forget/not care about that so far. I though i would not put a licence until it is well usable, and then i would integrate it into spring main SVN. I could setup a project page with SVN, but i would prefer to port it to the C interface before doing big changes. i also don't really recommend doing an AI with it already, as it may change some after the port.
for small things: you can send them to me (by PM) also.
is it ok like this? or any other suggestion?
Re: Java AI Interface for Spring
When you get headers that have license info or a license file I could contribute. Until then I will wait. Getting it into the SVN would speed up the development.
Re: Java AI Interface for Spring
Is this in SVN now?
Re: Java AI Interface for Spring
Not yet, but i started working on the Java interface wrapper of the C interface a few days ago. As soon as I have something at least remotely testable, i will put it on SVN with a NullJavaAI for testing. I hope this to happen in the upcomming week. The first test will be witout callback (as this will be a lot of work to wrap).
Re: Java AI Interface for Spring
If you have not yet read the AI Interface redesign topic, you may do so now:
viewtopic.php?f=15&t=15019&p=321227#p321227
Get the branch:
https://spring.clan-sy.com/svn/spring/b ... iinterface
I hope some of you will help with testing. if you are mainly interested in the Java interface, you may want to have a look at NullOOJavaAI (NullJavaAI will not be interesting for you). please do not start writing your AI yet, but give feedback about the interface in general:
viewtopic.php?f=15&t=15019&p=321227#p321227
Get the branch:
https://spring.clan-sy.com/svn/spring/b ... iinterface
I hope some of you will help with testing. if you are mainly interested in the Java interface, you may want to have a look at NullOOJavaAI (NullJavaAI will not be interesting for you). please do not start writing your AI yet, but give feedback about the interface in general:
- the (class-)structure of/behind OOAICallback: what would you change, how, and why?
- is this way of handling AIEvents ok? (AI Events are messages from the engine to the AI)
- ... what about AICommands? (messages from AI to engine that alter the engines state (in contrary to the methods reachable through OOAICallback))
Last edited by hoijui on 10 Dec 2008, 16:55, edited 1 time in total.