精华内容
下载资源
问答
  • TronTool.Java开发包适用于为Java应用快速增加对Tron/USDT-TRC20数字资产的支持能力,即支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。官方下载地址:...

    TronTool.Java开发包适用于为Java应用快速增加对Tron/USDT-TRC20数字资产的支持能力,即支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。官方下载地址:http://sc.hubwiz.com/codebag/tron-java-lib/

    1、TronTool.Java开发包概述

    TronTool.Java开发包主要包含以下特性:

    • 支持Tron区块链原生Trx交易
    • 支持Tron智能合约以及TRC20代币,例如USDT-TRC20等
    • 支持交易的离线签名,避免泄露私钥
    • 完善的Tron节点API封装,支持全节点、Solidity节点和事件节点提供的API
    • 支持使用自有节点或第三方节点,例如Tron官方提供的公共节点

    TronTool.Java开发包运行在Java 8环境下,当前版本1.0.0,主要类/接口及关系如下图所示:

    在这里插入图片描述

    TronTool.Java开发包的主要代码文件清单如下:

    代码文件说明
    trontool/TronTool库项目代码目录
    trontool/build.gradleTronTool项目Gradle配置
    trontool/src/main/java/trontool/TronKit.javaTron开发包入口类
    trontool/src/main/java/trontool/Trc20.javaTron TRC20智能合约封装类
    trontool/src/main/java/trontool/Contract.javaTron智能合约封装类
    trontool/src/main/java/trontool/Credential.javaTron区块链身份标识类,用于交易签名
    trontool/src/main/java/trontool/Address.javaTron地址表示类
    trontool/src/main/java/trontool/Base58.javaBase58编解码器
    trontool/src/main/java/trontool/TronApi.javaTron节点API聚合封装类
    trontool/src/main/java/trontool/NodeClient.javaHTTP协议封装类
    trontool/src/main/java/trontool/api/Tron API数据类型定义目录
    demo/演示项目代码目录
    demo/build.gradle演示项目Gradle配置文件
    demo/src/main/java/demo/NewAddressDemo.java演示代码,创建新的Tron区块链地址
    demo/src/main/java/demo/TrxDemo.java演示代码,Trx转账交易及余额查询
    demo/src/main/java/demo/Trc20Demo.java演示代码,Trc20代币转账、余额查询、事件监听等
    build.gradle根项目配置文件
    settings.gradle根项目配置文件

    2、使用TronTool.Java的示例代码

    2.1 创建新的Tron账号

    在终端进入演示代码目录,执行如下命令:

    ~$ cd ~/trontool.java/demo
    ~/trontool.java/demo$ gradle NewAddressDemo
    

    执行结果如下:

    在这里插入图片描述

    2.2 Trx转账及余额查询

    在终端进入演示代码目录,执行如下命令:

    ~$ cd ~/trontool.java/demo
    ~/trontool.java/demo$ gradle TrxDemo
    

    执行结果如下:

    在这里插入图片描述

    2.3 Trc20代币转账、余额查询及事件监听

    在终端进入演示代码目录,执行如下命令:

    ~$ cd ~/trontool.java/demo
    ~/trontool.java/demo$ gradle Trc20Demo
    

    执行结果如下:

    在这里插入图片描述

    2、使用TronKit

    TronKit是开发包的入口,使用这个类可以快速实现如下功能:

    • Trx转账与余额查询
    • Trc20代币转账、授权、余额查询等

    2.1 实例化TronKit

    TronKit实例化需要传入TronApi对象和Credential对象,这两个参数分别封装了Tron节点提供的API,以及进行交易签名的用户身份信息。

    例如,下面的代码创建一个接入Tron主链的TronKit实例,并使用指定的私钥进行交易签名:

    //import trontool.TronKit;
    //import trontool.TronApi;
    //import trontool.Credential;
    
    TronKit kit = new TronKit(
      TronApi.mainNet(),                                       //接入主链
      Credential.fromPrivateKey("87c12d....d435")              //使用指定私钥
    );
    

    2.2 Trx转账及余额查询

    使用TronKit的sendTrx()方法进行Trx转账,例如发送1000 TRX:

    //import trontool.api.TransactionResult;
    
    String to = "TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx";             //转账目标地址
    long amount = 1000000000;                                     //转账金额,单位:SUN
    TransactionResult ret = kit.sendTrx(to,amount);               //提交Trx转账交易
    System.out.printf("tx id: %s\n", ret.txId);                   //显示交易ID    
    System.out.printf("tx state: %b\n", ret.state);               //显示交易结果              
    

    注意:需要将金额单位转换为SUN,1 TRX = 1000000 SUN。

    使用getTrxBalance()方法查询指定地址的Trx余额,例如:

    String addr = "TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx";            //要查询的Tron地址
    long balance = kit.getTrxBlanace(addr);                        //查询Trx余额,单位:SUN
    System.out.printf("balance: %d\n",balance);                    //显示余额             
    

    2.3 TRC20代币转账

    使用TronKit对象的trc20()方法获取指定TRC20代币合约实例,然后调用合约的transfer()方法进行TRC20代币转账。例如,下面的代码指定地址间转账1315300个最小单位的USDT-TRC20代币,即
    1.3153 USDT:

    //import trontool.Trc20;
    //import trontool.api.TransactionResult;
    //import java.math.BigInteger;
    
    String to = "TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx";                 //转账目标地址
    BigInteger value = new BigInteger("1315300");                     //转账Trc20代币数量
    String contractAddress = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";    //USDT-TRC20代币合约的部署地址
    Trc20 usdt = kit.trc20(contractAddress);                          //创建Trc20代币合约实例
    TransactionResult ret = usdt.transfer(to,value);                  //转账Trc20代币
    System.out.printf("tx id: %s\n",ret.txId);                        //显示转账交易ID
    System.out.printf("tx state: %b\n",ret.state);                    //显示转账交易结果
    

    2.4 TRC20代币余额查询

    使用TronKit对象的trc20()方法获取指定TRC20代币合约实例,然后调用合约的balanceOf()方法查询指定地址的TRC20代币余额。例如,下面的代码查询指定地址的USDT代币余额:

    //import trontool.Trc20;
    //impot java.math.BigInteger;
    
    Trc20 usdt = kit.trc20("TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t");        //创建USDT-TRC20代币合约实例
    BigInteger balance = usdt.balanceOf("TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx");  //查询Trc20代币余额
    System.out.printf("balance: %s\n",balance);                         //显示代币余额
    

    2.5 TRC20代币事件查询

    使用TronKit对象的trc20()方法获取指定TRC20代币合约实例,然后调用合约的events()方法查询指定合约触发事件。

    例如查询USDT代币合约最近10秒的事件:

    //import trontool.Trc20;
    //import trontool.api.ContractEvent;
    
    Trc20 usdt = kit.trc20("TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t");       //创建Trc20代币合约实例
    long since = System.currentTimeMillis() - 10000;                    //计算检查时间点
    ContractEvent[] events = usdt.events(since);                        //提取合约事件
    for(ContractEvent e: events){
      System.out.println("event name: %s\n",e.eventName);               //显示事件名称
      System.out.println("block height: %d\n",e.blockNumber);           //显示事件触发的区块高度
    }
    

    events()返回的结果是一个事件对象数组,每个成员对象的主要字段说明如下:

    • callerContractAddress:调用合约地址,base58格式
    • transactionId:触发合约事件的交易ID,16进制字符串
    • result:合约事件参数列表,数组
    • resultType:合约事件参数类型列表,数组
    • blockTimestamp:事件所在区块时间戳,整数
    • blockNumber:事件所在区块号,整数
    • eventName:事件名称,字符串
    • contractAddress:合约地址,base58格式
    • eventIndex:事件索引序号,整数

    例如,下面是一个TRC20代币合约的Transfer事件对象的JSON表示,在event_name字段给出了事件名称,在result字段则给出了两种索引形式的事件参数:

    {
      "caller_contract_address": "TS2Hzo6KpAc8Ym2nGb3idpMtUpM2GiK2gL",
      "transaction_id": "265cf378f4943b7c77b7a294f533d4b8c718c297dd28a664848d77cd3f3a0af0",
      "result": {
        "0": "0x2539ef4f3eb733c105a957eebb20fd60ad8c9a43",      //事件参数0
        "1": "0x6f6794f3904ff51f9fa81e928afdec91f6744a50",      //事件参数1
        "2": "8",                                               //事件参数2        
        "_from": "0x2539ef4f3eb733c105a957eebb20fd60ad8c9a43",  //事件参数_from
        "_value": "8",                                          //事件参数_value
        "_to": "0x6f6794f3904ff51f9fa81e928afdec91f6744a50"     //事件参数_to
      },
      "result_type": {
        "_from": "address",                                     
        "_value": "uint256",
        "_to": "address"
      },
      "block_timestamp": 1586263455000,
      "block_number": 3539438,
      "event_name": "Transfer",                                 //事件名称   
      "contract_address": "TS2Hzo6KpAc8Ym2nGb3idpMtUpM2GiK2gL",
      "event_index": 0
    }
    

    3、Tron区块链身份与地址表示

    在TronTool.Java开发包中,使用Credential表征Tron区块链中的一个用户身份,使用Address
    表征Tron区块链中的一个地址。两者的区别在于Credential包含了用户的私钥信息,可以用来签名交易,因此需要保护,而Address则是可以公开的信息。

    使用Credential类的静态方法create()创建新账户。例如,下面的代码创建一个新的账户并显示其私钥、公钥和地址:

    //import trontool.Credential;
    
    Credential c = Credential.create();                           //创建新账号
    System.out.printf("private key: %s\n",c.getPrivateKey());     //显示私钥
    System.out.printf("public key: %s\n",c.getPublicKey());       //显示公钥
    System.out.printf("address: %s\n",c.getAddress());            //显示地址      
    

    可以使用静态方法fromPrivateKey()导入已有的私钥来实例化Credential。例如下面的代码导入已有私钥并显示地址:

    //import trontool.Credential;
    
    Credential c = Credential.fromPrivateKey("7889...023a");      //导入已有私钥
    System.out.printf("address: %s\n",c.getAddress());            //显示相应地址
    

    在Tron区块链中,地址有两种表示:16进制和base58表示,例如下面是同一个地址的两种表示:

    • base58:TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx
    • 16进制: 412539EF4F3EB733C105A957EEBB20FD60AD8C9A43

    Address类包含了相应的编解码逻辑,可以方面的利用不同形式的地址实例化Address。例如:

    //import trontool.Address;
    
    Address a1 = Address.fromBase58("TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx");
    System.out.println(a1.hex);       //输出:412539EF4F3EB733C105A957EEBB20FD60AD8C9A43
    
    Address a2 = Address.fromHex("412539EF4F3EB733C105A957EEBB20FD60AD8C9A43");
    System.out.println(a2.base58);    //输出:TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx
    

    有时我们只需要简单的在base58和16进制之间转换地址,这时并不需要中间的Address对象,可以直接使用静态方法encode()和decode()。例如:

    //import trontool.Address;
    
    String a1 = Address.decode("TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx");
    System.out.println(a1);         //输出:412539EF4F3EB733C105A957EEBB20FD60AD8C9A43
    
    String a2 = Address.encode("412539EF4F3EB733C105A957EEBB20FD60AD8C9A43");
    System.out.println(a2);         //输出:TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx
    

    4、使用TronApi访问Tron节点API

    使用TronApi访问Tron的各种节点API。TronApi聚合了多种Tron节点提供的API,例如tron全节点、solidity节点和事件服务节点的API。

    实例化TronApi时,可以分别为不同类型的Tron节点指定不同的连接URL,例如:

    //import trontool.TronApi;
    
    TronApi api = new TronApi(
      "https://api.trongrid.io",       //全节点URL
      "https://api.trongrid.io",       //合约节点URL
      "https://api.trongrid.io"        //事件节点URL
    );
    

    当上述三个节点的URL相同时,可以简写为:

    TronAPi api = new TronApi("https://api.trongrid.io");
    

    如果用的是Tron官方提供的TronGrid节点,那么可以直接使用TronApi提供的两个静态函数mainNet()和testNet(),分别接入主链和shasta测试链。

    例如,下面的代码是等效的:

    TronApi api = new TronApi("https://api.trongrid.io");
    TronApi api = TronApi.mainNet();                 //与上面等效
    
    TronApi api = new TronApi("https://api.shasta.trongrid.io");
    TronApi api = TronApi.testNet();                 //与上面等效
    

    TronApi封装了Tron官方多种节点提供的API的一个子集,可以用于应用与Tron区块链的交互。例如查询指定账户的TRX余额,可以利用Tron节点的getaccount接口,这对应于TronApi中的getAccount()方法:

    //import trontool.api.Account
    
    Account account = api.getAccount("TEgM5CPeqow...7vcBgVkD4tP");  //查询账户信息
    System.out.printf("balance: %d\n",account.balance);             //显示账户余额      
    

    Tron/USDT-TRC20系列开发包:TronTool.Java | TronTool.Net | TronTool.Go | TronTool.Php

    展开全文
  • Java开发包jdk1.8.0_77

    热门讨论 2016-07-21 13:26:47
    java jdk绿色版,安装后打的压缩包。解压后需配置JAVA_HOME变量
  • Java 开发工具

    千次阅读 2018-08-22 10:02:55
    关于 Java,你 必须知道的 JVM、JRE 和 JDK

    JVM、JRE 和 JDK

    要知道如何编译运行 Java 源程序,那么必须了解到与 Java 程序相关的工具。

    与 Java 语言相关的名词,初期必须掌握的有三个:

    JVM:Java Virtual Machine 的缩写,Java虚拟机。作用是:运行 Java 字节码文件。

    JRE:Java Runtime Environment 的缩写,Java运行环境。作用是:运行 Java 程序所必须的环境的集合,包含 JVM 标准实现及 Java 核心类库。

    JDK:Java Development Kit 的缩写,Java 语言的软件开发工具包(SDK,Software Development Kit)。作用是:JDK 是整个 Java 开发的核心,它包含了Java 的运行环境(JVM + Java 系统类库)和 Java 工具。

    它们三个的关系是:JRE包含JVM,JDK包含JRE。

    下图为 JVM、JRE 和 JDK 三者之间关系的简略图。

    有兴趣的读者,可以仔细看看下面详细的关系图。

    JDK 为了使用于不同的环境,所以有多个不同的版本。它们分别是:

    Java SE,Standard Edition,标准版,是通用的一个版本。

    Java EE,Enterprise Edition,企业版,使用这种 JDK 开发 Java EE 应用程序。

    Java ME,Micro Edition,主要用于移动设备、嵌入式设备上的 Java 应用程序。


    下载和安装 JDK

    Oracle公司Java产品JDK的下载地址

    点击链接之后,显示如下图所示:

    点击,JDK DOWNLOAD 按钮,进入如下界面,

    点击"Accept License Agreement",表示同意协议。然后就可以选择相应的版本进行下载了。


    Windows 用户请注意!!!其他操作系统不太熟悉,请参考其余资料,抱歉。

    安装完成最新版(较新版) JDK 之后,如果你将来不会使用控制台来编译运行 Java 程序,而是只使用 IDE(Integrated Development Environment,集成开发环境)的话,那么则不需要配置环境变量,直接使用 IDE 就可以了。

    如果你将来会使用到控制台来编译运行 Java 程序,那么需要配置环境变量。

    Windows XP 和 Windows 7 用户请参考:

    Windows XP和7 配置Java环境变量

    Window 10用户请参考:

    Java:Windows 10下载和配置 JDK


    Java 程序运行机制

    Java 语言是一种特殊的高级语言,它既具有解释性语言的特征,也具有编译型语言的特征,因为 Java 程序要经过先编译,后解释两个步骤。

    Java 语言比较特殊,由 Java 语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是 *.class 文件)。当然,这种字节码不是可执行性的,必须使用 Java 解释器来解释执行。因此可以认为:Java 语言既不是纯粹的编译型语言,也不是纯粹的解释性语言。Java 程序的执行过程必须经过先编译、后解释两个步骤,如下图所示:

    • 由 Java 编译器对 Java 源程序文件( *.java )进行编译,生成与平台无关的字节码文件( *.class );

    • 由 JVM 对字节码文件( *.class )进行解释执行。

    Java 语言里负责解释执行字节码文件的是 Java 虚拟机,即 JVM(Java Virtual Machine)。JVM 是可运行 Java 字节码文件的虚拟计算机。所有平台上的 JVM 向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。在一些虚拟机的实现中,还会降虚拟机代码转换成特定系统的机器码执行,从而提高执行效。

    当使用 Java 编译器编译 Java 程序时,生成的是与平台无缘的字节码,这些字节码不面向任何具体平台,只面向 JVM。不同平台上的 JVM 都是不同的,但它们提供了相同的接口。JVM 是 Java 程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的 Java 字节码就可以在该平台上运行。显然,相同的字节码程序需要在不同的平台上运行,这几乎是“不可能的”,只有通过中间的转换器材可以实现,JVM 就是这个转换器 。

     

    展开全文
  • web3j - 以太坊java开发包详解

    千次阅读 2018-06-22 01:00:41
    web3j是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整,除了以太坊JSON RPC的完整封装,它...

    web3j是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。

    web3j的功能相当完整,除了以太坊JSON RPC的完整封装,它还包括完备的账户管理及交易管理实现。不过web3j最大的问题是文档比较差。如果你希望快速掌握如何使用web3j开发支持以太坊的java应用或安卓应用,可以访问我们的web3j教程, 这是目前已知最快的学习路径。

    web3j的功能组织在不同的包中,下图展示了org.web3j的主要包以及其间的依赖关系:

    这里写图片描述

    core:JSON RPC协议的封装主要由包org.web3j.core实现,它依赖于org.web3j.crypto包提供
    的密钥与签名相关的功能,以及org.web3j.abi包提供的java/solidity类型映射支持。

    consoleorg.web3j.console包实现了一个可以单独运行的命令行程序web3j,我们将使用它来
    生成solidity合约的Java封装类,其中,org.web3j.codegen包实现了从abi到java封装类的代码生成。

    节点相关org.web3j.infura包封装了对Infura公共节点旳http访问服务接口,
    org.web3j.gethorg.web3j.parity则分别封装了这两种常用以太坊节点软件旳管理接口。

    原文:org.web3j以太坊java开发包简介

    展开全文
  • java开发工具 jdk Java开发工具(JDK)与JVM(Java虚拟机)和JRE(Java运行时环境)一起是Java编程中使用的三个核心技术软件包之一。 重要的是要区分这三种技术,并了解它们的连接方式: JVM是执行程序的Java...

    java开发工具包 jdk

    Java开发工具包(JDK)与JVM(Java虚拟机)和JRE(Java运行时环境)一起是Java编程中使用的三个核心技术软件包之一。 重要的是要区分这三种技术,并了解它们的连接方式:

    • JVM是执行程序的Java平台组件。
    • JRE是Java的磁盘上创建JVM的部分。
    • JDK允许开发人员创建可以由JVM和JRE执行和运行的Java程序。

    Java新手经常将Java开发工具包和Java运行时环境弄混。 区别在于JDK是用于开发基于Java的软件的工具包,而JRE是用于运行 Java代码的工具包。

    JRE可以用作独立组件,以简单地运行Java程序,但它也是JDK的一部分。 JDK需要JRE,因为运行Java程序是开发它们的一部分。

    图1显示了JDK如何适应Java应用程序开发生命周期。

    jw whatisjdk图1 马修·泰森(Matthew Tyson)

    图1. JDK的高级视图

    就像我们最近对Java虚拟机的介绍一样 ,让我们考虑一下JDK的技术定义和日常定义:

    • 技术定义:JDK是Java平台规范的实现,包括编译器和类库。
    • 日常定义:JDK是您下载的软件包,用于创建基于Java的应用程序。

    JDK和Java编译器

    除了用于运行Java应用程序的环境JRE之外,每个JDK都包含一个Java编译器。 编译器是一种软件程序,能够获取原始的.java文件(即纯文本)并将其呈现为可执行的.class文件。 我们将很快看到编译器的运行。 首先,我将向您展示如何在开发环境中下载和设置JDK。

    开始使用JDK

    在开发环境中进行Java设置就像下载JDK并将其添加到类路径一样容易。 下载JDK时,需要选择要使用的Java版本。 Java 8是最常用的版本,但在撰写本文时, Java 11是长期支持(LTS)版本 。 Java保持向后兼容性,因此我们将仅下载最新版本。

    JDK套件

    除了选择Java版本外,您还需要选择一个Java软件包。 软件包是针对不同类型开发的Java开发工具包。 可用的软件包是Java Enterprise Edition(Java EE),Java Standard Edition(Java SE)和Java Mobile Edition(Java ME)。

    新手开发人员有时不确定哪个软件包适合他们的项目。 通常,每个JDK版本都包含Java SE。 如果下载Java EE或Java ME,则将获得标准版本。 例如,Jave EE是标准平台,其中包含对企业应用程序开发有用的附加工具,例如Enterprise JavaBeans或对对象关系映射的支持。

    如果发现需要,将来切换到其他JDK也不难。 刚开始时,不必担心选择正确的Java版本和JDK软件包。

    JDK版本兼容性

    由于JDK为Java程序提供了编译器,因此您使用的JDK决定了您可以在其中编写代码的Java版本。例如,如果要使用Java 8中提供的较新的功能编程功能如Lambda运算符箭头) ,那么至少需要Java 8 JDK进行编译。 否则, javac命令将拒绝语法错误的代码。

    下载JDK

    在本教程中,我们将坚持使用Java SE,以便我们可以专注于核心JDK类和技术。 要下载Java SE JDK,请访问Oracle的官方下载页面 。 您将看到各种可用的JDK软件包,如图2所示。

    jw whatisjdk图2 马修·泰森(Matthew Tyson)

    图2.可用的JDK软件包

    在选择Java SE下载之前,请花一点时间查看其他选项。 Java厨房里有很多烹饪!

    关于Java EE

    如果您主要对构建基于Java的Web应用程序感兴趣,则可以下载Java EE JDK。 Java EE JDK包含Java Servlet规范 ,该规范支持HTTP请求处理。 每个Java EE JDK实现都需要一个容器 ,该容器是运行Java EE应用程序的服务器。 Glassfish是Oracle的Java EE服务器参考实现。 其他流行的实现是Tomcat和Jetty。

    现在,继续下载Java Standard Edition JDK。

    安装JDK

    运行JDK安装程序时,会为您提供三个组件的选择: 开发工具源代码Public JRE 。 您可以安装其中一个或全部。 在这种情况下,只需选择默认值即可。

    安装“开发工具”选项可以使您正确使用JDK。 安装“源代码”包含核心Java API中公共类的源。 包括此选项可让您在构建应用程序时参考源代码。 第三个选项“公共JRE”表明JDK和JRE是独立的实体:其他程序可以使用公共JRE执行Java程序,并且可以与JDK分开安装。

    继续安装所有三个组件,并接受每个组件的默认设置。 这样做意味着您的JDK和JRE将安装在操作系统的默认位置。 在Windows上,这是C:\ Program Files \ Java ,如图3所示。

    jw whatisjdk图3 马修·泰森(Matthew Tyson)

    图3.安装的Java

    命令行上的JDK

    安装JDK和JRE会将java命令添加到命令行中。 您可以通过放入命令外壳并键入java -version来验证这一点,该命令应返回您安装的Java版本。 (在某些情况下,您必须重新启动系统才能完全更改系统路径。)

    最好安装java ,但是javac呢? 您将需要此JDK元素来编译Java文件。

    javac命令

    javac命令位于/jdk目录中,但在安装过程中不会自动添加到系统路径中。 我们可以选择自己安装javac ,也可以安装包含此命令的IDE。 我们将以老式的方式开始编译并运行Java程序。

    一个简单的Java程序

    步骤1.编写一个简单的Java程序

    创建一个名为Intro.java的新文本文件,并将其放置在计算机上的某个位置,例如“文档”文件夹。

    接下来,添加清单1中的代码,它是一个非常简单的Java程序。

    清单1. Intro.java

    
    public class Intro {
    
        public static void main(String[] args) {
            System.out.println("Welcome to the JDK!");
        }
    
    }
    

    步骤2.使用JDK进行编译

    接下来,使用JDK编译器将文本文件转换为可执行程序。 Java中的编译代码称为字节码,并带有.class扩展名。

    您将使用javac命令,该命令代表Java编译器。 在命令外壳中键入命令的完整路径,然后将Intro.java文件作为命令传递。 在我的系统上,类似于清单2。

    清单2.使用JDK进行编译

    
    "C:\Program Files\Java\jdk-10.0.1\bin\javac.exe" Intro.java
    

    那应该导致编译成功。 javac将不会以成功消息进行响应; 它只会输出新文件。 任何错误都将导致控制台输出。

    步骤3.运行.class文件

    您现在应该看到Intro.class文件在同一目录Intro.java

    您可以通过键入以下内容来运行它: java Intro ,将显示清单3。请注意,键入此命令时不包括.class

    清单3.运行Intro.class

    
    C:\Users\mtyson\Documents>java Intro
    Welcome to the JDK!
    

    jar命令

    javac是JDK的明星,但是/bin目录包含您将需要的其他工具。 在javac之后最著名的也许是jar工具。

    .jar文件是Java类的打包集合。 编译器创建.class文件后,开发人员可以将它们放到.jar ,以可预测的方式压缩和构造它们。

    让我们将Intro.class转换为jar文件。

    浏览回到放置Intro.java的目录,然后键入清单4中所示的命令。

    清单4.创建一个JAR文件

    
    C:\Users\mtyson\Documents>"c:\Program Files\Java\jdk-10.0.1\bin\jar.exe" --create --file intro.jar Intro.class
    

    执行罐子

    现在,您将在目录中看到一个intro.jar文件。 您可以通过将.jar添加到类路径并在其中执行程序来使用它,如下所示:

    
    java -cp intro.jar Intro
    

    -cp开关告诉Java将jar添加到类路径。 .jar文件对于这个微型程序而言是过大的杀伤力,但是随着程序规模的扩大和依赖第三方软件包的出现,它们是必不可少的。

    IDE中的JDK

    回到JDK下载页面,您可能已经注意到使用Netbeans IDE下载JDK的选项。 IDE或集成开发环境是一种软件,它为开发应用程序提供了一套紧密的工具。 将IDE视为具有一组工具(如文件浏览器和文本编辑器)的可视化操作系统,并具有特定于开发的其他功能,例如代码完成和格式化。

    在Java开发中,IDE的主要功能之一就是为您管理编译。 也就是说,IDE会在后台自动运行编译过程,因此您不必自己继续进行编译。 IDE还可以在您进行过程中提供逐次播放的反馈,以实时捕获编码错误。

    存在一些针对Java的可靠IDE 。 您已经了解了JDK在命令行上的工作方式,现在让我们快速看一下它在Eclipse IDE中的工作方式。

    [另请参见: 选择Java IDE:比较Eclipse,NetBeans和Intellij IDE的功能,可用性以及项目大小和类型 ]

    Eclipse和JDK

    安装Eclipse不在本指南的范围内,但这是一个简单的过程。 Eclipse包含与其他任何程序一样的安装程序,您可以在此处找到适合您的操作系统的正确安装程序。

    安装Eclipse后,从菜单栏中打开“窗口”菜单项,然后选择“ 首选项”

    在首选项窗口中,您将看到Java项目。 打开它,在里面您会看到Compiler项。 单击该按钮将显示JDK的一些选项。

    图4显示了Eclipse中JDK选项的屏幕截图。

    jw whatisjdk 4 马修·泰森(Matthew Tyson)

    图4. Eclipse JDK选项

    如前所述,您将需要为项目选择正确的JDK版本。 在后台,IDE将运行JDK编译器,就像从命令行运行它一样。 Eclipse IDE也有自己的JDK实例。 IDE为您管理JDK和JRE,这使工作变得更加轻松!

    结论

    本文是一个简短系列的第二篇文章,介绍了三个核心Java平台组件: JVM,JDK和JRE 。 在该系列的下一篇文章中寻找有关Java Runtime Environment的所有文章

    这个故事“什么是JDK?Java开发工具包简介”最初由JavaWorld发布。

    翻译自: https://www.infoworld.com/article/3296360/what-is-the-jdk-introduction-to-the-java-development-kit.html

    java开发工具包 jdk

    展开全文
  • 淘宝API服务java开发SDK

    热门讨论 2013-12-09 22:30:47
    淘宝API服务java开发SDK
  • JAVA包命名规范

    千次阅读 2018-04-04 09:16:11
    学习Java的童鞋们都知道,Java、类、接口、方法、变量、常量;JavaEE的三层模型等都有一套约定俗成的命名规则。  我学习每种语言都会关注相应的命名规则,一则体现自己比较专业;二来方便后检查,看到名称就...
  • java开发表情生成器

    千次阅读 2017-09-23 19:49:43
    前言:现在表情越来越火,因此用java开发一个,只是简单的图片加文字生成一张图片,字体可以调大小颜色,当然你也可以尝试更多功能,如gif,文字动态等,图片大小缩放等,能动态生成图片,那自然也能动态生成网页...
  • 此安装程序必须使用 Java 开发工具 (JDK) 执行, 但 C:\Program Files\Java\jre1.8.0_172 不是有效的 JDK Java 主目录。解决
  • javacv0.8开发包

    热门讨论 2014-07-11 14:20:15
    javacv0.8开发包,对应opencv2.4.9;也是最后一个2.X版本了,OpenCV3.0版本即将发布了。
  • SAS JAVA基础开发包下载

    千次阅读 2011-01-24 20:13:00
    包含访问SAS元数据服务器的基础,在下面地址 http://download.csdn.net/source/3000612 资源含有下面jar: sas.security.sspi.jar sas.oma.joma.rmt.jar sas.oma.omi.jar sas.oma.joma.jar sas.svc....
  • Appium java jar

    热门讨论 2015-08-06 17:36:26
    Appium java 测试框架 jar
  • Java语言特点

    万次阅读 多人点赞 2019-06-30 19:37:45
    Java语言是简单的 Java语言的语法与C语言和C++语言很接近,从某种意义上讲,它是由C和C++演变而来,使得...提供了丰富的类库和API文档,以及第三方开发包工具包,还有大量的基于Java的开源项目,帮助程序设计人...
  • 百度地图api离线开发包

    千次下载 热门讨论 2015-11-02 15:10:19
    本离线开发包,支持百度地图离线开发。用于无网络环境下的百度地图二次开发。 包含以下文件: 1,基础API:apiv1.3.min.js ,有注释可参考; 2,基础CSS: bmap.css ; 3,依赖文件:map,oppc,tile,control,marker; 4...
  • 初学Java–JDK(java development kit java 开发工具)的下载与安装教程 1. 下载安装包 点开链接可以找到JDK的版本安装界面 可以看到如下图所示的界面: 下面是我选择的版本(点击下载): 进入安装包类型的...
  • Kettle java开发需要的jar

    热门讨论 2014-09-26 16:51:10
    jar列表(参考 kettle java二次开发demo http://bbs.csdn.net/topics/390369075) avalon-framework-4.1.3.jar commons-collections-3.2.jar commons-io-1.4.jar commons-lang-2.4.jar commons-logging-1.1.jar ...
  • 银联在线支付接口 开发文档+开发包(java)

    千次下载 热门讨论 2010-02-07 16:02:39
    银联在线支付 开发文档+开发jar for java NetPayClient2.5 内含1pdf+1jar+1说明txt
  • java源码---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
  • java 名、类名命名规则

    万次阅读 2017-04-27 14:20:16
    代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯。 代码编写规范使用范围:J2EE项目开发命名规范: 目的:的命名规范应当体现出项目资源良好的划分 servlet类...
  • Java开发中如何下载Jar

    千次阅读 2018-04-03 17:24:26
    开发中,我们经常遇到jar需要下载的情况。例如这样: 首先我们需要知道所需的jar。这个可以自行度娘之类的。或者,我们可以根据关键词直接在maven仓库中去搜索。 这里推荐的maven仓库有两个,一个是maven...
  • Eclipse 是目前最流行的 Java 语言开发工具,它强大的代码辅助功能,可以帮助开发人员自动完成语法修正、补全文字、代码修复、API 提示等编码工作,大量节省程序开发所需的时间。 本教程使用 Eclipse 为开发工具,...
  • java开源1

    千次下载 热门讨论 2013-06-28 09:14:34
    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...
  • java微信公众账号开发所用jar

    千次下载 热门讨论 2014-03-06 09:18:42
    主要用于java版微信公众账号开发后台所用jar
  • java开源12

    热门讨论 2013-06-28 10:14:45
    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...
  • 中文翻译过来就是:dt.jar是BeanInfo文件的DesignTime归档,BeanInfo文件用来告诉集成开发环境(IDE)如何显示Java组件还有如何让开发人员根据应用程序自定义它们。这段文字中提到了几个关键字:DesignTime,BeanInfo...
  • 关于JDK(Java Development Kit)Java开发工具的介绍 JDK是构建Java应用程序的关键平台部分,JDK的核心是Java编译器。 JDK是Java编程三个核心技术之一,另外两个是JVM(Java Virtual Machine)Java虚拟机和JRE...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
  • java开源11

    热门讨论 2013-06-28 10:10:38
    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...
  • java开源4

    热门讨论 2013-06-28 09:26:54
    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...
  • Java语言开发工具JDK的安装与配置

    千次阅读 2017-07-18 10:12:10
    Java语言开发工具JDK的安装与配置 说明:此JDK的安装与配置流程是在Windows10操作系统下进行的,其他操作系统可能会有所不同,请根据不同操作系统选择配置流程进行操作。 以安装在D盘为例(软件尽量都安装在D盘...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,364,759
精华内容 545,903
关键字:

java开发包

java 订阅