timob / jnigi

Golang Java JNI library
BSD 2-Clause "Simplified" License
163 stars 44 forks source link

Not able to find java class even after loading classpath #86

Open parth-mehta-989 opened 3 months ago

parth-mehta-989 commented 3 months ago

Hi, we tried using the jnigi to connect java to go but even when we load the classpath, it still says class not found. project structure:

project:
    |
    ---- main.go
    |
    |
    ---- go.mod
    |
    |
    ---- go.sum
    |
    |
    ---- abc2.jar

main.go

package main

import (
    "log"
    "runtime"

    "github.com/timob/jnigi"
)

func main() {
    if err := jnigi.LoadJVMLib("/opt/homebrew/Cellar/openjdk@21/21.0.3/libexec/openjdk.jdk/Contents/Home/lib/server/libjvm.dylib"); err != nil {
        log.Fatal(err)
    }

    runtime.LockOSThread()
    _, env, err := jnigi.CreateJVM(jnigi.NewJVMInitArgs(false, true, jnigi.DEFAULT_VERSION, []string{"-Xcheck:jni", "-Xbootclasspath/a:./abc2.jar", "-verbose:class"}))
    if err != nil {
        log.Fatal(err)
    }
    cls, err := env.FindClass("com.person.Person")
    if err != nil {
        log.Fatalf("class not found, err: %v", err)
    }
    log.Println("found class", cls)
}

abc2.jar is a simple java project fat jar file which has a class com.person.Person. The ouput I am getting:

# command-line-arguments
ld: warning: '/private/var/folders/60/nq6yrbkx0flf1t4jn1qdg6vr0000gq/T/go-link-2269234384/go.o' has malformed LC_DYSYMTAB, expected 53 undefined symbols to start at index 3319, found 75 undefined symbols starting at index 15
[0.033s][info][class,load] opened: ./abc2.jar
[0.078s][info][class,load] java.lang.Object source: shared objects file
[0.079s][info][class,load] java.io.Serializable source: shared objects file
[0.079s][info][class,load] java.lang.Comparable source: shared objects file
[0.079s][info][class,load] java.lang.CharSequence source: shared objects file
[0.079s][info][class,load] java.lang.constant.Constable source: shared objects file
[0.079s][info][class,load] java.lang.constant.ConstantDesc source: shared objects file
[0.079s][info][class,load] java.lang.String source: shared objects file
[0.079s][info][class,load] java.lang.reflect.AnnotatedElement source: shared objects file
[0.079s][info][class,load] java.lang.reflect.GenericDeclaration source: shared objects file
[0.079s][info][class,load] java.lang.reflect.Type source: shared objects file
[0.079s][info][class,load] java.lang.invoke.TypeDescriptor source: shared objects file
[0.079s][info][class,load] java.lang.invoke.TypeDescriptor$OfField source: shared objects file
[0.079s][info][class,load] java.lang.Class source: shared objects file
[0.079s][info][class,load] java.lang.Cloneable source: shared objects file
[0.079s][info][class,load] java.lang.ClassLoader source: shared objects file
[0.079s][info][class,load] java.lang.System source: shared objects file
[0.079s][info][class,load] java.lang.Throwable source: shared objects file
[0.079s][info][class,load] java.lang.Error source: shared objects file
[0.079s][info][class,load] java.lang.Exception source: shared objects file
[0.079s][info][class,load] java.lang.RuntimeException source: shared objects file
[0.079s][info][class,load] java.lang.SecurityManager source: shared objects file
[0.079s][info][class,load] java.security.ProtectionDomain source: shared objects file
[0.079s][info][class,load] java.security.AccessControlContext source: shared objects file
[0.079s][info][class,load] java.security.AccessController source: shared objects file
[0.079s][info][class,load] java.security.SecureClassLoader source: shared objects file
[0.079s][info][class,load] java.lang.ReflectiveOperationException source: shared objects file
[0.079s][info][class,load] java.lang.ClassNotFoundException source: shared objects file
[0.079s][info][class,load] java.lang.Record source: shared objects file
[0.079s][info][class,load] java.lang.LinkageError source: shared objects file
[0.079s][info][class,load] java.lang.NoClassDefFoundError source: shared objects file
[0.079s][info][class,load] java.lang.ClassCastException source: shared objects file
[0.079s][info][class,load] java.lang.ArrayStoreException source: shared objects file
[0.079s][info][class,load] java.lang.VirtualMachineError source: shared objects file
[0.079s][info][class,load] java.lang.InternalError source: shared objects file
[0.079s][info][class,load] java.lang.OutOfMemoryError source: shared objects file
[0.079s][info][class,load] java.lang.StackOverflowError source: shared objects file
[0.079s][info][class,load] java.lang.IllegalMonitorStateException source: shared objects file
[0.079s][info][class,load] java.lang.ref.Reference source: shared objects file
[0.079s][info][class,load] java.lang.ref.SoftReference source: shared objects file
[0.079s][info][class,load] java.lang.ref.WeakReference source: shared objects file
[0.079s][info][class,load] java.lang.ref.FinalReference source: shared objects file
[0.079s][info][class,load] java.lang.ref.PhantomReference source: shared objects file
[0.079s][info][class,load] java.lang.ref.Finalizer source: shared objects file
[0.079s][info][class,load] java.lang.Runnable source: shared objects file
[0.079s][info][class,load] java.lang.Thread source: shared objects file
[0.079s][info][class,load] java.lang.Thread$FieldHolder source: shared objects file
[0.079s][info][class,load] java.lang.Thread$Constants source: shared objects file
[0.079s][info][class,load] java.lang.Thread$UncaughtExceptionHandler source: shared objects file
[0.079s][info][class,load] java.lang.ThreadGroup source: shared objects file
[0.079s][info][class,load] java.lang.BaseVirtualThread source: shared objects file
[0.079s][info][class,load] java.lang.VirtualThread source: shared objects file
[0.079s][info][class,load] java.lang.ThreadBuilders$BoundVirtualThread source: shared objects file
[0.080s][info][class,load] java.util.Dictionary source: shared objects file
[0.080s][info][class,load] java.util.Map source: shared objects file
[0.080s][info][class,load] java.util.Hashtable source: shared objects file
[0.080s][info][class,load] java.util.Properties source: shared objects file
[0.080s][info][class,load] java.lang.Module source: shared objects file
[0.080s][info][class,load] java.lang.reflect.AccessibleObject source: shared objects file
[0.080s][info][class,load] java.lang.reflect.Member source: shared objects file
[0.080s][info][class,load] java.lang.reflect.Field source: shared objects file
[0.080s][info][class,load] java.lang.reflect.Parameter source: shared objects file
[0.080s][info][class,load] java.lang.reflect.Executable source: shared objects file
[0.080s][info][class,load] java.lang.reflect.Method source: shared objects file
[0.080s][info][class,load] java.lang.reflect.Constructor source: shared objects file
[0.080s][info][class,load] jdk.internal.vm.ContinuationScope source: shared objects file
[0.080s][info][class,load] jdk.internal.vm.Continuation source: shared objects file
[0.080s][info][class,load] jdk.internal.vm.StackChunk source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.MagicAccessorImpl source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.MethodAccessor source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.MethodAccessorImpl source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.ConstructorAccessor source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.ConstructorAccessorImpl source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.DelegatingClassLoader source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.ConstantPool source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.FieldAccessor source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.FieldAccessorImpl source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.UnsafeFieldAccessorImpl source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.UnsafeStaticFieldAccessorImpl source: shared objects file
[0.080s][info][class,load] java.lang.annotation.Annotation source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.CallerSensitive source: shared objects file
[0.080s][info][class,load] jdk.internal.reflect.NativeConstructorAccessorImpl source: shared objects file
[0.080s][info][class,load] java.lang.invoke.MethodHandle source: shared objects file
[0.080s][info][class,load] java.lang.invoke.DirectMethodHandle source: shared objects file
[0.080s][info][class,load] java.lang.invoke.VarHandle source: shared objects file
[0.080s][info][class,load] java.lang.invoke.MemberName source: shared objects file
[0.080s][info][class,load] java.lang.invoke.ResolvedMethodName source: shared objects file
[0.080s][info][class,load] java.lang.invoke.MethodHandleNatives source: shared objects file
[0.080s][info][class,load] java.lang.invoke.LambdaForm source: shared objects file
[0.080s][info][class,load] java.lang.invoke.TypeDescriptor$OfMethod source: shared objects file
[0.080s][info][class,load] java.lang.invoke.MethodType source: shared objects file
[0.080s][info][class,load] java.lang.BootstrapMethodError source: shared objects file
[0.080s][info][class,load] java.lang.invoke.CallSite source: shared objects file
[0.080s][info][class,load] jdk.internal.foreign.abi.NativeEntryPoint source: shared objects file
[0.080s][info][class,load] jdk.internal.foreign.abi.ABIDescriptor source: shared objects file
[0.080s][info][class,load] jdk.internal.foreign.abi.VMStorage source: shared objects file
[0.080s][info][class,load] jdk.internal.foreign.abi.UpcallLinker$CallRegs source: shared objects file
[0.080s][info][class,load] java.lang.invoke.MethodHandleNatives$CallSiteContext source: shared objects file
[0.080s][info][class,load] java.lang.invoke.ConstantCallSite source: shared objects file
[0.080s][info][class,load] java.lang.invoke.MutableCallSite source: shared objects file
[0.080s][info][class,load] java.lang.invoke.VolatileCallSite source: shared objects file
[0.080s][info][class,load] java.lang.AssertionStatusDirectives source: shared objects file
[0.080s][info][class,load] java.lang.Appendable source: shared objects file
[0.080s][info][class,load] java.lang.AbstractStringBuilder source: shared objects file
[0.080s][info][class,load] java.lang.StringBuffer source: shared objects file
[0.080s][info][class,load] java.lang.StringBuilder source: shared objects file
[0.080s][info][class,load] jdk.internal.misc.UnsafeConstants source: shared objects file
[0.080s][info][class,load] jdk.internal.misc.Unsafe source: shared objects file
[0.080s][info][class,load] jdk.internal.module.Modules source: shared objects file
[0.080s][info][class,load] java.lang.AutoCloseable source: shared objects file
[0.080s][info][class,load] java.io.Closeable source: shared objects file
[0.080s][info][class,load] java.io.InputStream source: shared objects file
[0.080s][info][class,load] java.io.ByteArrayInputStream source: shared objects file
[0.080s][info][class,load] java.net.URL source: shared objects file
[0.080s][info][class,load] java.net.URLClassLoader source: shared objects file
[0.080s][info][class,load] java.lang.Enum source: shared objects file
[0.080s][info][class,load] java.util.jar.Manifest source: shared objects file
[0.080s][info][class,load] jdk.internal.loader.BuiltinClassLoader source: shared objects file
[0.080s][info][class,load] jdk.internal.loader.ClassLoaders source: shared objects file
[0.080s][info][class,load] jdk.internal.loader.ClassLoaders$AppClassLoader source: shared objects file
[0.080s][info][class,load] jdk.internal.loader.ClassLoaders$PlatformClassLoader source: shared objects file
[0.080s][info][class,load] java.security.CodeSource source: shared objects file
[0.080s][info][class,load] java.util.AbstractMap source: shared objects file
[0.080s][info][class,load] java.util.concurrent.ConcurrentMap source: shared objects file
[0.080s][info][class,load] java.util.concurrent.ConcurrentHashMap source: shared objects file
[0.081s][info][class,load] java.lang.Iterable source: shared objects file
[0.081s][info][class,load] java.util.Collection source: shared objects file
[0.081s][info][class,load] java.util.AbstractCollection source: shared objects file
[0.081s][info][class,load] java.util.SequencedCollection source: shared objects file
[0.081s][info][class,load] java.util.List source: shared objects file
[0.081s][info][class,load] java.util.AbstractList source: shared objects file
[0.081s][info][class,load] java.util.RandomAccess source: shared objects file
[0.081s][info][class,load] java.util.ArrayList source: shared objects file
[0.081s][info][class,load] java.lang.StackTraceElement source: shared objects file
[0.081s][info][class,load] java.nio.Buffer source: shared objects file
[0.081s][info][class,load] java.lang.StackWalker source: shared objects file
[0.081s][info][class,load] java.lang.StackStreamFactory$AbstractStackWalker source: shared objects file
[0.081s][info][class,load] java.lang.StackWalker$StackFrame source: shared objects file
[0.081s][info][class,load] java.lang.StackFrameInfo source: shared objects file
[0.081s][info][class,load] java.lang.LiveStackFrame source: shared objects file
[0.081s][info][class,load] java.lang.LiveStackFrameInfo source: shared objects file
[0.081s][info][class,load] java.util.concurrent.locks.AbstractOwnableSynchronizer source: shared objects file
[0.081s][info][class,load] java.lang.Boolean source: shared objects file
[0.081s][info][class,load] java.lang.Character source: shared objects file
[0.081s][info][class,load] java.lang.Number source: shared objects file
[0.081s][info][class,load] java.lang.Float source: shared objects file
[0.081s][info][class,load] java.lang.Double source: shared objects file
[0.081s][info][class,load] java.lang.Byte source: shared objects file
[0.081s][info][class,load] java.lang.Short source: shared objects file
[0.081s][info][class,load] java.lang.Integer source: shared objects file
[0.081s][info][class,load] java.lang.Long source: shared objects file
[0.081s][info][class,load] java.util.Iterator source: shared objects file
[0.081s][info][class,load] java.lang.reflect.RecordComponent source: shared objects file
[0.081s][info][class,load] jdk.internal.vm.vector.VectorSupport source: shared objects file
[0.081s][info][class,load] jdk.internal.vm.vector.VectorSupport$VectorPayload source: shared objects file
[0.081s][info][class,load] jdk.internal.vm.vector.VectorSupport$Vector source: shared objects file
[0.081s][info][class,load] jdk.internal.vm.vector.VectorSupport$VectorMask source: shared objects file
[0.081s][info][class,load] jdk.internal.vm.vector.VectorSupport$VectorShuffle source: shared objects file
[0.081s][info][class,load] jdk.internal.vm.FillerObject source: shared objects file
[0.081s][info][class,load] java.lang.Integer$IntegerCache source: shared objects file
[0.081s][info][class,load] java.lang.Long$LongCache source: shared objects file
[0.081s][info][class,load] java.lang.Byte$ByteCache source: shared objects file
[0.081s][info][class,load] java.lang.Short$ShortCache source: shared objects file
[0.081s][info][class,load] java.lang.Character$CharacterCache source: shared objects file
[0.081s][info][class,load] java.util.jar.Attributes$Name source: shared objects file
[0.081s][info][class,load] java.util.ImmutableCollections$AbstractImmutableMap source: shared objects file
[0.081s][info][class,load] java.util.ImmutableCollections$MapN source: shared objects file
[0.081s][info][class,load] sun.util.locale.BaseLocale source: shared objects file
[0.081s][info][class,load] jdk.internal.module.ArchivedModuleGraph source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleFinder source: shared objects file
[0.081s][info][class,load] jdk.internal.module.SystemModuleFinders$SystemModuleFinder source: shared objects file
[0.081s][info][class,load] java.util.ImmutableCollections$AbstractImmutableCollection source: shared objects file
[0.081s][info][class,load] java.util.Set source: shared objects file
[0.081s][info][class,load] java.util.ImmutableCollections$AbstractImmutableSet source: shared objects file
[0.081s][info][class,load] java.util.ImmutableCollections$SetN source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleReference source: shared objects file
[0.081s][info][class,load] jdk.internal.module.ModuleReferenceImpl source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleDescriptor source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleDescriptor$Version source: shared objects file
[0.081s][info][class,load] java.util.ImmutableCollections$Set12 source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleDescriptor$Requires source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleDescriptor$Requires$Modifier source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleDescriptor$Exports source: shared objects file
[0.081s][info][class,load] java.lang.module.ModuleDescriptor$Provides source: shared objects file
[0.082s][info][class,load] java.util.ImmutableCollections$AbstractImmutableList source: shared objects file
[0.082s][info][class,load] java.util.ImmutableCollections$List12 source: shared objects file
[0.082s][info][class,load] java.net.URI source: shared objects file
[0.082s][info][class,load] java.util.function.Supplier source: shared objects file
[0.082s][info][class,load] jdk.internal.module.SystemModuleFinders$2 source: shared objects file
[0.082s][info][class,load] jdk.internal.module.ModuleHashes$HashSupplier source: shared objects file
[0.082s][info][class,load] jdk.internal.module.SystemModuleFinders$3 source: shared objects file
[0.082s][info][class,load] java.lang.module.ModuleDescriptor$Opens source: shared objects file
[0.082s][info][class,load] java.util.ImmutableCollections$ListN source: shared objects file
[0.082s][info][class,load] jdk.internal.module.ModuleTarget source: shared objects file
[0.082s][info][class,load] jdk.internal.module.ModuleHashes source: shared objects file
[0.082s][info][class,load] java.util.Collections$UnmodifiableMap source: shared objects file
[0.082s][info][class,load] java.util.HashMap source: shared objects file
[0.082s][info][class,load] java.util.Map$Entry source: shared objects file
[0.082s][info][class,load] java.util.HashMap$Node source: shared objects file
[0.082s][info][class,load] java.lang.module.Configuration source: shared objects file
[0.082s][info][class,load] java.lang.module.ResolvedModule source: shared objects file
[0.082s][info][class,load] java.util.function.Function source: shared objects file
[0.082s][info][class,load] jdk.internal.module.ModuleLoaderMap$Mapper source: shared objects file
[0.082s][info][class,load] java.util.ImmutableCollections source: shared objects file
[0.082s][info][class,load] java.lang.ModuleLayer source: shared objects file
[0.082s][info][class,load] jdk.internal.math.FDBigInteger source: shared objects file
[0.083s][info][class,load] java.lang.NullPointerException source: shared objects file
[0.083s][info][class,load] java.lang.ArithmeticException source: shared objects file
[0.084s][info][class,load] java.io.ObjectStreamField source: shared objects file
[0.084s][info][class,load] java.util.Comparator source: shared objects file
[0.084s][info][class,load] java.lang.String$CaseInsensitiveComparator source: shared objects file
[0.084s][info][class,load] jdk.internal.misc.VM source: shared objects file
[0.084s][info][class,load] java.lang.Module$ArchivedData source: shared objects file
[0.084s][info][class,load] jdk.internal.misc.CDS source: shared objects file
[0.085s][info][class,load] java.util.Objects source: shared objects file
[0.085s][info][class,load] jdk.internal.access.JavaLangReflectAccess source: shared objects file
[0.085s][info][class,load] java.lang.reflect.ReflectAccess source: shared objects file
[0.085s][info][class,load] jdk.internal.access.SharedSecrets source: shared objects file
[0.085s][info][class,load] java.security.PrivilegedAction source: shared objects file
[0.085s][info][class,load] jdk.internal.reflect.ReflectionFactory$GetReflectionFactoryAction source: shared objects file
[0.085s][info][class,load] jdk.internal.reflect.Reflection source: shared objects file
[0.085s][info][class,load] java.lang.StringLatin1 source: shared objects file
[0.085s][info][class,load] java.lang.Math source: shared objects file
[0.086s][info][class,load] jdk.internal.reflect.ReflectionFactory source: shared objects file
[0.086s][info][class,load] jdk.internal.reflect.ReflectionFactory$Config source: shared objects file
[0.086s][info][class,load] jdk.internal.access.JavaLangRefAccess source: shared objects file
[0.086s][info][class,load] java.lang.ref.Reference$1 source: shared objects file
[0.086s][info][class,load] java.lang.ref.ReferenceQueue source: shared objects file
[0.086s][info][class,load] java.lang.ref.NativeReferenceQueue source: shared objects file
[0.086s][info][class,load] java.lang.ref.ReferenceQueue$Null source: shared objects file
[0.086s][info][class,load] java.lang.ref.NativeReferenceQueue$Lock source: shared objects file
[0.086s][info][class,load] jdk.internal.access.JavaLangAccess source: shared objects file
[0.086s][info][class,load] java.lang.System$2 source: shared objects file
[0.086s][info][class,load] jdk.internal.util.SystemProps source: shared objects file
[0.086s][info][class,load] jdk.internal.util.SystemProps$Raw source: shared objects file
[0.096s][info][class,load] java.nio.charset.Charset source: shared objects file
[0.096s][info][class,load] java.nio.charset.spi.CharsetProvider source: shared objects file
[0.096s][info][class,load] sun.nio.cs.StandardCharsets source: shared objects file
[0.096s][info][class,load] sun.nio.cs.HistoricallyNamedCharset source: shared objects file
[0.096s][info][class,load] sun.nio.cs.Unicode source: shared objects file
[0.096s][info][class,load] sun.nio.cs.UTF_8 source: shared objects file
[0.097s][info][class,load] jdk.internal.util.ArraysSupport source: shared objects file
[0.097s][info][class,load] java.util.LinkedHashMap$Entry source: shared objects file
[0.097s][info][class,load] java.util.HashMap$TreeNode source: shared objects file
[0.097s][info][class,load] java.lang.StringConcatHelper source: shared objects file
[0.097s][info][class,load] java.lang.VersionProps source: shared objects file
[0.097s][info][class,load] java.lang.Runtime source: shared objects file
[0.097s][info][class,load] jdk.internal.util.Preconditions source: shared objects file
[0.097s][info][class,load] jdk.internal.util.Preconditions$1 source: shared objects file
[0.097s][info][class,load] java.util.function.BiFunction source: shared objects file
[0.097s][info][class,load] jdk.internal.util.Preconditions$4 source: shared objects file
[0.097s][info][class,load] jdk.internal.util.Preconditions$2 source: shared objects file
[0.097s][info][class,load] jdk.internal.util.Preconditions$3 source: shared objects file
[0.097s][info][class,load] java.util.Arrays source: shared objects file
[0.097s][info][class,load] java.lang.CharacterData source: shared objects file
[0.097s][info][class,load] java.lang.CharacterDataLatin1 source: shared objects file
[0.097s][info][class,load] java.util.concurrent.locks.Lock source: shared objects file
[0.097s][info][class,load] java.util.concurrent.locks.ReentrantLock source: shared objects file
[0.097s][info][class,load] java.util.concurrent.ConcurrentHashMap$Segment source: shared objects file
[0.098s][info][class,load] java.util.concurrent.ConcurrentHashMap$CounterCell source: shared objects file
[0.098s][info][class,load] java.util.concurrent.ConcurrentHashMap$Node source: shared objects file
[0.098s][info][class,load] java.util.concurrent.locks.LockSupport source: shared objects file
[0.098s][info][class,load] java.util.concurrent.ConcurrentHashMap$ReservationNode source: shared objects file
[0.098s][info][class,load] java.util.AbstractSet source: shared objects file
[0.098s][info][class,load] java.util.HashMap$EntrySet source: shared objects file
[0.098s][info][class,load] java.util.HashMap$HashIterator source: shared objects file
[0.098s][info][class,load] java.util.HashMap$EntryIterator source: shared objects file
[0.098s][info][class,load] jdk.internal.util.StaticProperty source: shared objects file
[0.098s][info][class,load] java.io.FileInputStream source: shared objects file
[0.098s][info][class,load] java.io.FileDescriptor source: shared objects file
[0.098s][info][class,load] jdk.internal.access.JavaIOFileDescriptorAccess source: shared objects file
[0.098s][info][class,load] java.io.FileDescriptor$1 source: shared objects file
[0.098s][info][class,load] java.io.Flushable source: shared objects file
[0.098s][info][class,load] java.io.OutputStream source: shared objects file
[0.098s][info][class,load] java.io.FileOutputStream source: shared objects file
[0.098s][info][class,load] java.io.FilterInputStream source: shared objects file
[0.098s][info][class,load] java.io.BufferedInputStream source: shared objects file
[0.098s][info][class,load] jdk.internal.misc.InternalLock source: shared objects file
[0.098s][info][class,load] java.util.concurrent.locks.AbstractQueuedSynchronizer source: shared objects file
[0.098s][info][class,load] java.util.concurrent.locks.ReentrantLock$Sync source: shared objects file
[0.098s][info][class,load] java.util.concurrent.locks.ReentrantLock$NonfairSync source: shared objects file
[0.098s][info][class,load] java.io.FilterOutputStream source: shared objects file
[0.098s][info][class,load] java.io.PrintStream source: shared objects file
[0.098s][info][class,load] jdk.internal.access.JavaIOPrintStreamAccess source: shared objects file
[0.098s][info][class,load] java.io.PrintStream$1 source: shared objects file
[0.098s][info][class,load] java.io.BufferedOutputStream source: shared objects file
[0.098s][info][class,load] java.io.Writer source: shared objects file
[0.098s][info][class,load] java.io.OutputStreamWriter source: shared objects file
[0.098s][info][class,load] sun.nio.cs.StreamEncoder source: shared objects file
[0.100s][info][class,load] java.nio.charset.CharsetEncoder source: shared objects file
[0.100s][info][class,load] sun.nio.cs.UTF_8$Encoder source: jrt:/java.base
[0.100s][info][class,load] java.nio.charset.CodingErrorAction source: shared objects file
[0.100s][info][class,load] java.nio.ByteBuffer source: shared objects file
[0.100s][info][class,load] jdk.internal.misc.ScopedMemoryAccess source: shared objects file
[0.100s][info][class,load] java.nio.Buffer$1 source: shared objects file
[0.100s][info][class,load] jdk.internal.access.JavaNioAccess source: shared objects file
[0.100s][info][class,load] java.nio.Buffer$2 source: shared objects file
[0.100s][info][class,load] java.nio.HeapByteBuffer source: shared objects file
[0.100s][info][class,load] java.nio.ByteOrder source: shared objects file
[0.100s][info][class,load] java.io.BufferedWriter source: shared objects file
[0.100s][info][class,load] java.lang.Terminator source: shared objects file
[0.100s][info][class,load] jdk.internal.misc.Signal$Handler source: shared objects file
[0.100s][info][class,load] java.lang.Terminator$1 source: shared objects file
[0.100s][info][class,load] jdk.internal.misc.Signal source: shared objects file
[0.100s][info][class,load] java.util.Hashtable$Entry source: shared objects file
[0.100s][info][class,load] jdk.internal.misc.Signal$NativeHandler source: shared objects file
[0.100s][info][class,load] jdk.internal.misc.OSEnvironment source: shared objects file
[0.100s][info][class,load] java.lang.Thread$State source: shared objects file
[0.100s][info][class,load] java.lang.ref.Reference$ReferenceHandler source: shared objects file
[0.100s][info][class,load] java.lang.Thread$ThreadIdentifiers source: shared objects file
[0.100s][info][class,load] java.lang.ref.Finalizer$FinalizerThread source: shared objects file
[0.100s][info][class,load] jdk.internal.ref.Cleaner source: shared objects file
[0.101s][info][class,load] java.util.Collections source: shared objects file
[0.101s][info][class,load] jdk.internal.misc.Blocker source: shared objects file
[0.101s][info][class,load] java.util.Collections$EmptySet source: shared objects file
[0.101s][info][class,load] java.util.concurrent.locks.Condition source: shared objects file
[0.101s][info][class,load] java.util.Collections$EmptyList source: shared objects file
[0.101s][info][class,load] java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject source: shared objects file
[0.101s][info][class,load] java.util.Collections$EmptyMap source: shared objects file
[0.101s][info][class,load] java.lang.IllegalArgumentException source: shared objects file
[0.101s][info][class,load] java.lang.invoke.MethodHandleStatics source: shared objects file
[0.101s][info][class,load] java.lang.reflect.ClassFileFormatVersion source: shared objects file
[0.101s][info][class,load] sun.security.action.GetPropertyAction source: shared objects file
[0.101s][info][class,load] jdk.internal.util.ClassFileDumper source: shared objects file
[0.102s][info][class,load] java.util.HexFormat source: shared objects file
[0.102s][info][class,load] java.util.concurrent.atomic.AtomicInteger source: shared objects file
[0.102s][info][class,load] jdk.internal.module.ModuleBootstrap source: shared objects file
[0.102s][info][class,load] java.lang.invoke.MethodHandles source: shared objects file
[0.102s][info][class,load] java.lang.invoke.MemberName$Factory source: shared objects file
[0.102s][info][class,load] java.lang.invoke.MethodHandles$Lookup source: shared objects file
[0.102s][info][class,load] java.lang.StrictMath source: shared objects file
[0.102s][info][class,load] java.util.ImmutableCollections$MapN$1 source: shared objects file
[0.102s][info][class,load] java.util.ImmutableCollections$MapN$MapNIterator source: shared objects file
[0.102s][info][class,load] java.util.KeyValueHolder source: shared objects file
[0.102s][info][class,load] sun.invoke.util.VerifyAccess source: shared objects file
[0.103s][info][class,load] java.lang.reflect.Modifier source: shared objects file
[0.103s][info][class,load] jdk.internal.access.JavaLangModuleAccess source: shared objects file
[0.103s][info][class,load] java.lang.module.ModuleDescriptor$1 source: shared objects file
[0.103s][info][class,load] java.io.File source: shared objects file
[0.103s][info][class,load] java.io.DefaultFileSystem source: shared objects file
[0.103s][info][class,load] java.io.FileSystem source: shared objects file
[0.103s][info][class,load] java.io.UnixFileSystem source: shared objects file
[0.103s][info][class,load] jdk.internal.module.ModulePatcher source: shared objects file
[0.103s][info][class,load] java.util.HashSet source: shared objects file
[0.103s][info][class,load] jdk.internal.module.ModuleBootstrap$Counters source: shared objects file
[0.103s][info][class,load] jdk.internal.module.ArchivedBootLayer source: shared objects file
[0.103s][info][class,load] jdk.internal.access.JavaNetUriAccess source: shared objects file
[0.103s][info][class,load] java.net.URI$1 source: shared objects file
[0.103s][info][class,load] jdk.internal.loader.ArchivedClassLoaders source: shared objects file
[0.103s][info][class,load] jdk.internal.loader.URLClassPath source: shared objects file
[0.103s][info][class,load] java.net.URLStreamHandlerFactory source: shared objects file
[0.103s][info][class,load] java.net.URL$DefaultFactory source: shared objects file
[0.103s][info][class,load] jdk.internal.access.JavaNetURLAccess source: shared objects file
[0.103s][info][class,load] java.net.URL$3 source: shared objects file
[0.104s][info][class,load] java.io.File$PathStatus source: shared objects file
[0.104s][info][class,load] sun.net.www.ParseUtil source: shared objects file
[0.104s][info][class,load] java.net.URLStreamHandler source: shared objects file
[0.104s][info][class,load] sun.net.www.protocol.file.Handler source: shared objects file
[0.104s][info][class,load] sun.net.util.IPAddressUtil source: shared objects file
[0.104s][info][class,load] sun.net.util.IPAddressUtil$MASKS source: shared objects file
[0.104s][info][class,load] java.util.Queue source: shared objects file
[0.104s][info][class,load] java.util.Deque source: shared objects file
[0.104s][info][class,load] java.util.ArrayDeque source: shared objects file
[0.104s][info][class,load] sun.net.www.protocol.jar.Handler source: shared objects file
[0.104s][info][class,load] jdk.internal.loader.ClassLoaders$BootClassLoader source: shared objects file
[0.104s][info][class,load] java.security.cert.Certificate source: shared objects file
[0.104s][info][class,load] java.lang.ClassLoader$ParallelLoaders source: shared objects file
[0.104s][info][class,load] java.util.WeakHashMap source: shared objects file
[0.104s][info][class,load] java.util.WeakHashMap$Entry source: shared objects file
[0.104s][info][class,load] java.util.Collections$SetFromMap source: shared objects file
[0.104s][info][class,load] java.util.WeakHashMap$KeySet source: shared objects file
[0.105s][info][class,load] jdk.internal.access.JavaSecurityAccess source: shared objects file
[0.105s][info][class,load] java.security.ProtectionDomain$JavaSecurityAccessImpl source: shared objects file
[0.105s][info][class,load] java.security.ProtectionDomain$Key source: shared objects file
[0.105s][info][class,load] java.security.Principal source: shared objects file
[0.105s][info][class,load] jdk.internal.loader.NativeLibraries source: shared objects file
[0.105s][info][class,load] jdk.internal.loader.ClassLoaderHelper source: shared objects file
[0.105s][info][class,load] jdk.internal.util.OSVersion source: shared objects file
[0.105s][info][class,load] java.util.concurrent.ConcurrentHashMap$CollectionView source: shared objects file
[0.105s][info][class,load] java.util.concurrent.ConcurrentHashMap$KeySetView source: shared objects file
[0.105s][info][class,load] jdk.internal.module.ServicesCatalog source: shared objects file
[0.105s][info][class,load] jdk.internal.loader.AbstractClassLoaderValue source: shared objects file
[0.105s][info][class,load] jdk.internal.loader.ClassLoaderValue source: shared objects file
[0.105s][info][class,load] java.util.Optional source: shared objects file
[0.105s][info][class,load] jdk.internal.loader.BootLoader source: shared objects file
[0.105s][info][class,load] java.lang.Module$EnableNativeAccess source: shared objects file
[0.106s][info][class,load] jdk.internal.loader.BuiltinClassLoader$LoadedModule source: shared objects file
[0.106s][info][class,load] java.util.ImmutableCollections$SetN$SetNIterator source: shared objects file
[0.106s][info][class,load] java.util.ImmutableCollections$Set12$1 source: shared objects file
[0.107s][info][class,load] java.util.ListIterator source: shared objects file
[0.107s][info][class,load] java.util.ImmutableCollections$ListItr source: shared objects file
[0.107s][info][class,load] jdk.internal.module.ModuleLoaderMap source: shared objects file
[0.110s][info][class,load] jdk.internal.loader.AbstractClassLoaderValue$Memoizer source: shared objects file
[0.110s][info][class,load] jdk.internal.module.ServicesCatalog$ServiceProvider source: shared objects file
[0.110s][info][class,load] java.util.concurrent.CopyOnWriteArrayList source: shared objects file
[0.110s][info][class,load] java.util.HashMap$KeySet source: shared objects file
[0.110s][info][class,load] java.util.HashMap$KeyIterator source: shared objects file
[0.110s][info][class,load] java.lang.ModuleLayer$Controller source: shared objects file
[0.110s][info][class,load] java.lang.invoke.StringConcatFactory source: shared objects file
[0.111s][info][class,load] com.person.Person source: ./abc2.jar
Exception in thread "main" [0.116s][info][class,load] java.lang.Throwable$PrintStreamOrWriter source: jrt:/java.base
[0.116s][info][class,load] java.lang.Throwable$WrappedPrintStream source: jrt:/java.base
[0.116s][info][class,load] java.util.IdentityHashMap source: shared objects file
[0.116s][info][class,load] java.util.IdentityHashMap$KeySet source: shared objects file
[0.116s][info][class,load] java.lang.Readable source: shared objects file
[0.116s][info][class,load] java.nio.CharBuffer source: shared objects file
[0.116s][info][class,load] java.nio.HeapCharBuffer source: shared objects file
[0.116s][info][class,load] java.lang.StringCoding source: shared objects file
[0.116s][info][class,load] java.nio.charset.CoderResult source: shared objects file
[0.116s][info][class,load] java.util.concurrent.ForkJoinWorkerThread source: shared objects file
[0.116s][info][class,load] jdk.internal.misc.CarrierThread source: shared objects file
java.lang.NoClassDefFoundError: com.person.Person
2024/07/12 16:58:22 class not found, err: Java exception occurred. check stderr/logcat
exit status 1

Any recommendations/suggestions to solve this?

HyDreamFly commented 3 months ago

You can try env.FindClass("com/person/Person"),Can it solve the problem?