JAVA WEB3J与ganache以太坊环境交互

1. 下载Web3j库

在github官网  https://github.com/web3j/web3j/releases  下载web3j-4.5.5.zip文件

在命令行中输入加压命令 unzip web3j-4.5.5.zip 进行解压

直接输入命令 ./web3j-4.5.5.zip/bin/web3j 即可运行,显示图像如下所示说明运行成功

参考官方文档: https://web3j.readthedocs.io/en/latest/command_line_tools.html#manual-installation

JAVA WEB3J与ganache以太坊环境交互_第1张图片

 

2. 编译生成所需的辅助类文件

先安装solc,输入命令 npm install -g solc

把合约代码编译生成需要的bin和abi文件,注意指定一个输出路径,这里是我新建的 JAVA-ETH 文件夹

输入命令 solcjs MyContract.sol --bin --abi --optimize -o JAVA-ETH/  

会在JAVA-ETH 文件夹下 生成 MyContract.bin 和 MyContract.abi 文件。

这两个文件用于生成JAVA访问以太坊的合约辅助类,当前文件夹是myApp/JAVA-ETH,而Web3j在myApp/web3j-4.5.5文件夹,因此命令如下:

$ ./../web3j-4.5.5/bin/web3j solidity generate -a=MyContract.abi -b=MyContract.bin -o=Wrapper -p=My.test

然后就能在myApp/JAVA-ETH/Wrapper/My/test 文件夹下看到生成的 MyContract_sol_MyContract.java

 

3. 访问区块链

把这个类文件复制到JAVA工程中,在JAVA工程里添加myApp/web3j-4.5.5/lib/console-4.5.5-all.jar 这个库

参考官方示例,即可与以太坊交互

https://web3j.readthedocs.io/en/latest/smart_contracts.html

https://kauri.io/article/14dc434d11ef4ee18bf7d57f079e246e/interacting-with-an-ethereum-smart-contract-in-java

https://www.baeldung.com/web3j

以下是我写的简单例子,可以访问ganache里的账户信息和加载合约

/**
 * FileName: Test
 * Author:   star
 * Date:     2019/10/22 16:40
 * Description: 测试JAVA连接以太坊和调用合约函数
 * History:
 *           

 

你可能感兴趣的:(区块链)