Contract-Invocation

為安卓應用生成智能合約包裝器

  • September 24, 2017

我已經下載了用於生成智能合約包裝器的命令行工具。我將編譯後的合約放入outweb3j.bat 文件附近的文件夾中。但是當我執行此命令時 web3j solidity generate ./out/test_sol_TestToken.bin ./out/test_sol_TestToken.abi -o D:\android_dev\projects\eth_test\app\src\main\java -p test.user

出現此錯誤

D:\Desktop\web3\bin>web3j solidity generate ./out/test_sol_TestToken.bin ./out/t
est_sol_TestToken.abi -o D:\android_dev\projects\eth_test\app\src\main\java -p t
est.user
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/web3j/con
sole/Runner : Unsupported major.minor version 52.0
       at java.lang.ClassLoader.defineClass1(Native Method)
       at java.lang.ClassLoader.defineClass(Unknown Source)
       at java.security.SecureClassLoader.defineClass(Unknown Source)
       at java.net.URLClassLoader.defineClass(Unknown Source)
       at java.net.URLClassLoader.access$100(Unknown Source)
       at java.net.URLClassLoader$1.run(Unknown Source)
       at java.net.URLClassLoader$1.run(Unknown Source)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.net.URLClassLoader.findClass(Unknown Source)
       at java.lang.ClassLoader.loadClass(Unknown Source)
       at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
       at java.lang.ClassLoader.loadClass(Unknown Source)
       at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

看來我的 jdk 版本不正確。我嘗試添加系統環境變數 JAVA_HOME=C:\Program Files (x86)\Java\jre7但沒有運氣。有人可以指出 web3j 需要哪個 jdk 版本嗎?

看起來 web3 需要 jre8+。它在我更新 jre 並更改 JAVA_HOME 後創建了包裝器類

引用自:https://ethereum.stackexchange.com/questions/26817