i-net-software / JWebAssembly

Java bytecode to WebAssembly compiler
Apache License 2.0
985 stars 64 forks source link

ConstantMethodRef cannot be cast to class java.lang.String #64

Open YiZero10 opened 1 year ago

YiZero10 commented 1 year ago

I have been blocked... I want to compile Java smart contract, is there any sample? And the Picture is my code, I want to complie it to wasm. And happen following exceptions:

Exception in thread "main" de.inetsoftware.jwebassembly.WasmException: java.lang.ClassCastException: class de.inetsoftware.classparser.ConstantMethodRef cannot be cast to class java.lang.String (de.inetsoftware.classparser.ConstantMethodRef is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') at MyBank.createAccount(MyBank.java:19) at de.inetsoftware.jwebassembly.WasmException.create(WasmException.java:145) at de.inetsoftware.jwebassembly.WasmException.create(WasmException.java:118) at de.inetsoftware.jwebassembly.WasmException.create(WasmException.java:99) at de.inetsoftware.jwebassembly.module.JavaMethodWasmCodeBuilder.writeCode(JavaMethodWasmCodeBuilder.java:767) at de.inetsoftware.jwebassembly.module.JavaMethodWasmCodeBuilder.buildCode(JavaMethodWasmCodeBuilder.java:99) at de.inetsoftware.jwebassembly.module.ModuleGenerator.createInstructions(ModuleGenerator.java:586) at de.inetsoftware.jwebassembly.module.ModuleGenerator.scanFunctions(ModuleGenerator.java:242) at de.inetsoftware.jwebassembly.module.ModuleGenerator.prepareFinish(ModuleGenerator.java:325) at de.inetsoftware.jwebassembly.JWebAssembly.compile(JWebAssembly.java:368) at de.inetsoftware.jwebassembly.JWebAssembly.compileToText(JWebAssembly.java:279) at de.inetsoftware.jwebassembly.JWebAssembly.compileToText(JWebAssembly.java:263) at de.inetsoftware.jwebassembly.JWebAssembly.compileToText(JWebAssembly.java:229) at Test.main(Test.java:31) Caused by: java.lang.ClassCastException: class de.inetsoftware.classparser.ConstantMethodRef cannot be cast to class java.lang.String (de.inetsoftware.classparser.ConstantMethodRef is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') at de.inetsoftware.classparser.BootstrapMethod.(BootstrapMethod.java:58) at de.inetsoftware.classparser.ClassFile.getBootstrapMethod(ClassFile.java:234) at de.inetsoftware.jwebassembly.module.JavaMethodWasmCodeBuilder.writeCode(JavaMethodWasmCodeBuilder.java:662) ... 9 more

image
Horcrux7 commented 1 year ago
wlusergithub commented 10 months ago

I have been blocked... I want to compile Java smart contract, is there any sample? And the Picture is my code, I want to complie it to wasm. And happen following exceptions:

Exception in thread "main" de.inetsoftware.jwebassembly.WasmException: java.lang.ClassCastException: class de.inetsoftware.classparser.ConstantMethodRef cannot be cast to class java.lang.String (de.inetsoftware.classparser.ConstantMethodRef is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') at MyBank.createAccount(MyBank.java:19) at de.inetsoftware.jwebassembly.WasmException.create(WasmException.java:145) at de.inetsoftware.jwebassembly.WasmException.create(WasmException.java:118) at de.inetsoftware.jwebassembly.WasmException.create(WasmException.java:99) at de.inetsoftware.jwebassembly.module.JavaMethodWasmCodeBuilder.writeCode(JavaMethodWasmCodeBuilder.java:767) at de.inetsoftware.jwebassembly.module.JavaMethodWasmCodeBuilder.buildCode(JavaMethodWasmCodeBuilder.java:99) at de.inetsoftware.jwebassembly.module.ModuleGenerator.createInstructions(ModuleGenerator.java:586) at de.inetsoftware.jwebassembly.module.ModuleGenerator.scanFunctions(ModuleGenerator.java:242) at de.inetsoftware.jwebassembly.module.ModuleGenerator.prepareFinish(ModuleGenerator.java:325) at de.inetsoftware.jwebassembly.JWebAssembly.compile(JWebAssembly.java:368) at de.inetsoftware.jwebassembly.JWebAssembly.compileToText(JWebAssembly.java:279) at de.inetsoftware.jwebassembly.JWebAssembly.compileToText(JWebAssembly.java:263) at de.inetsoftware.jwebassembly.JWebAssembly.compileToText(JWebAssembly.java:229) at Test.main(Test.java:31) Caused by: java.lang.ClassCastException: class de.inetsoftware.classparser.ConstantMethodRef cannot be cast to class java.lang.String (de.inetsoftware.classparser.ConstantMethodRef is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') at de.inetsoftware.classparser.BootstrapMethod.(BootstrapMethod.java:58) at de.inetsoftware.classparser.ClassFile.getBootstrapMethod(ClassFile.java:234) at de.inetsoftware.jwebassembly.module.JavaMethodWasmCodeBuilder.writeCode(JavaMethodWasmCodeBuilder.java:662) ... 9 more

image

请问下您这是在将java编译成wasm智能合约吗

Horcrux7 commented 10 months ago

I repeat the questions: