您的位置:首页 > 编程语言 > Java开发

android开发教程(二)——环境搭建之java-jdk

2016-06-29 17:41 666 查看
此文章来自于【http://blog.csdn.net/kl222/article/details/16355099】

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录

 

Java jdk环境搭建主要有两步:

下载、安装java jdk
设置环境变量

java介绍:

目前java有两种版本:因为sun java已经被oracle收购了,所以一般用的版本是oracle的sun版本。另外一种是openjdk。

java分为两个部分:

java运行库(jre):适用于您的计算机的 Java 软件,即 Java 运行时环境,也称为 Java 运行时、运行时环境、运行时、JRE、Java 虚拟机、虚拟机、Java VM、JVM、VM、Java 插件、Java 附加程序或 Java 下载
下载地址:

http://www.java.com/zh_CN/download/

java开发库(jdk):包括java的编译工具、打包工具等,还有jre
下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

你可以在上面地址中看到许多java种版本,例如:javase、javaee、javame等,这些只是用于的范围不同。

在每个类下分jre和jdk两部分。

 

下面对java主要工具介绍:

jre工具:
java:java程序解析、运行工具
keytool:签名产生工具
servertool:

jdk中的工具:
javac:javac编译工具
javadoc:java文档编译工具
javah:c接口生成工具。
javap:显示中间代码中的信息。包括:包、反汇编、系统信息等。

jar:java打包工具
jarsigner:java签名工具,用keytool工具产生签名
jconsole:java监控和管理控制台
jdb:java调试工具
idlj:idl接口编译器

 

安装、设置:
ubuntu操作系统:


ubuntu下默认的是用openjdk:

我的ubuntu版本:

k@k-C410:/usr/lib/jvm/default-java$ lsb_release -a

No LSB modules are available.

Distributor ID:    Ubuntu

Description:    Ubuntu 13.10

Release:    13.10

Codename:    saucy

k@k-C410:/usr/lib/jvm/default-java$ uname -a

Linux k-C410 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

安装:

k@k-C410:/$ sudo apt-get install default-jdk

它会把openjdk安装到下面目录:

k@k-C410:/usr/lib/jvm/default-java$ ls

ASSEMBLY_EXCEPTION  docs     jre  man      THIRD_PARTY_README

bin                 include  lib  src.zip

你可以在bin目录下看到所有jdk的工具:

k@k-C410:/usr/lib/jvm/default-java/bin$ ls

appletviewer  javac         jdb         jstack        policytool   tnameserv

apt           javadoc       jhat        jstat         rmic         unpack200

extcheck      javah         jinfo       jstatd        rmid         wsgen

idlj          javap         jmap        keytool       rmiregistry  wsimport

jar           java-rmi.cgi  jps         native2ascii  schemagen    xjc

jarsigner     jcmd          jrunscript  orbd          serialver

java          jconsole      jsadebugd   pack200       servertool

在jre目录下的bin目录下看到jre的工具:

k@k-C410:/usr/lib/jvm/default-java/jre/bin$ ls

java     orbd     policytool  rmiregistry  tnameserv

keytool  pack200  rmid        servertool   unpack200

以上是默认的安装路径,当然,用户也可以安装到其它地方。这样的话,就需要一个环境变量来找到jdk的安装目录。这是一个约定,大家都会在这个环境变量找到jdk的安装目录。再根据这个安装目录找到相应的工具程序。

设置环境变量:

export JAVA_HOME=/usr/lib/jvm/default-java

export PATH=$PATH:$JAVA_HOME/bin        

如果你需要下次系统启动时就有,可以把这个放到 ~/.bashrc 文件中。这样,当前用户登录时,就会设置JAVA_HOME环境变量。

如果你需要用在计算机上的所有用户中,那需要把这个环境变量加到系统的环境变量设置文件中:/etc/profile

因为这个java是安装的,默认会把java、javac、javadoc、javah、javap安装到/usr/bin目录下,所以PATH变量不是强制要求设置。但如果你是下载java jdk后解压到其它目录。那就需要设备环境变量PATH。

安装完成后,可查看版本:

k@k-C410:/usr/lib/jvm/default-java$ java -version

java version "1.7.0_25"

OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)

OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

以上是openjdk,下面讲sun jdk:

 从oracle下载jdk:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

解压到:/data/jdk1.7.0_45
k@k-C410:/data/jdk1.7.0_45$ ls

bin        lib          src.zip

COPYRIGHT  LICENSE      THIRDPARTYLICENSEREADME-JAVAFX.txt

db         man          THIRDPARTYLICENSEREADME.txt

include    README.html

jre        release

设置环境变量:

export JAVA_HOME=/data/jdk1.7.0_45

export PATH=$PATH:$JAVA_HOME/bin     

k@k-C410:/$ java -version

java version "1.7.0_45"

Java(TM) SE Runtime Environment (build 1.7.0_45-b18)

Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

windows下安装java jdk:

我的windows版本是windows 7旗舰版本:

 从oracle下载jdk:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

安装到:

C:\Program Files\Java\jdk1.7.0

在bin目录下是jdk工具。

在jre\bin目录下是jre工具。

 

设置环境变量:
我的电脑->系统属性->高级->环境变量->administrator的用户变量中->添加:

JAVA_HOME=C:\Program Files\Java\jdk1.7.0

PATH=%PATH%;%JAVA_HOME%\bin


 

administrator的用户变量是指这些用户变量只应用在administrator账户中。如果要用在计算机的所有账户中,就需要在下面的系统变量中添加环境变量。

现在你可以查看下java的版本号,以检查是否设置成功:
打开命令行控制台:



在控制台中输入:



如果你是新手,看到下面部分可能会头晕。那你继续看后面的文章,后面文章用会有下面命名的示例,然后你再返回来看这时就明白了。

 

java工具详细介绍:

javac:java编译工具,从java源码产生中间代码。


k@k-C410:/data/test$ javac 

用法: javac <options> <source files>

其中, 可能的选项包括:

  -g                         生成所有调试信息

  -g:none                    不生成任何调试信息

  -g:{lines,vars,source}     只生成某些调试信息

  -nowarn                    不生成任何警告

  -verbose                   输出有关编译器正在执行的操作的消息

  -deprecation               输出使用已过时的 API 的源位置

  -classpath <路径>            指定查找用户类文件和注释处理程序的位置

  -cp <路径>                   指定查找用户类文件和注释处理程序的位置

  -sourcepath <路径>           指定查找输入源文件的位置

  -bootclasspath <路径>        覆盖引导类文件的位置

  -extdirs <目录>              覆盖所安装扩展的位置

  -endorseddirs <目录>         覆盖签名的标准路径的位置

  -proc:{none,only}          控制是否执行注释处理和/或编译。

  -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程

  -processorpath <路径>        指定查找注释处理程序的位置

  -d <目录>                    指定放置生成的类文件的位置

  -s <目录>                    指定放置生成的源文件的位置

  -implicit:{none,class}     指定是否为隐式引用文件生成类文件

  -encoding <编码>             指定源文件使用的字符编码

  -source <发行版>              提供与指定发行版的源兼容性

  -target <发行版>              生成特定 VM 版本的类文件

  -version                   版本信息

  -help                      输出标准选项的提要

  -A关键字[=值]                  传递给注释处理程序的选项

  -X                         输出非标准选项的提要

  -J<标记>                     直接将 <标记> 传递给运行时系统

  -Werror                    出现警告时终止编译

  @<文件名>                     从文件读取选项和文件名

javap:java中间代码查看工具。可以反汇编中间代码,显示中间代码的类信息等。

k@k-C410:~$ javap

Usage: javap <options> <classes>

where possible options include:

  -help  --help  -?        Print this usage message

  -version                 Version information

  -v  -verbose             Print additional information

  -l                       Print line number and local variable tables

  -public                  Show only public classes and members

  -protected               Show protected/public classes and members

  -package                 Show package/protected/public classes

                           and members (default)

  -p  -private             Show all classes and members

  -c                       Disassemble the code

  -s                       Print internal type signatures

  -sysinfo                 Show system info (path, size, date, MD5 hash)

                           of class being processed

  -constants               Show static final constants

  -classpath <path>        Specify where to find user class files

  -bootclasspath <path>    Override location of bootstrap class files

java:java执行工具

k@k-C410:/data/test$ java

用法: java [-options] class [args...]

           (执行类)

   或  java [-options] -jar jarfile [args...]

           (执行 jar 文件)

其中选项包括:

    -d32      使用 32 位数据模型 (如果可用)

    -d64      使用 64 位数据模型 (如果可用)

    -server      选择 "server" VM

    -zero      选择 "zero" VM

    -jamvm      选择 "jamvm" VM

    -avian      选择 "avian" VM

                  默认 VM 是 server.

    -cp <目录和 zip/jar 文件的类搜索路径>

    -classpath <目录和 zip/jar 文件的类搜索路径>

                  用 : 分隔的目录, JAR 档案

                  和 ZIP 档案列表, 用于搜索类文件。

    -D<name>=<value>

                  设置系统属性

    -verbose[:class|gc|jni]

                  启用详细输出

    -version      输出产品版本并退出

    -version:<value>

                  需要指定的版本才能运行

    -showversion  输出产品版本并继续

    -jre-restrict-search | -no-jre-restrict-search

                  在版本搜索中包括/排除用户专用 JRE

    -? -help      输出此帮助消息

    -X            输出非标准选项的帮助

    -ea[:<packagename>...|:<classname>]

    -enableassertions[:<packagename>...|:<classname>]

                  按指定的粒度启用断言

    -da[:<packagename>...|:<classname>]

    -disableassertions[:<packagename>...|:<classname>]

                  禁用具有指定粒度的断言

    -esa | -enablesystemassertions

                  启用系统断言

    -dsa | -disablesystemassertions

                  禁用系统断言

    -agentlib:<libname>[=<options>]

                  加载本机代理库 <libname>, 例如 -agentlib:hprof

                  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help

    -agentpath:<pathname>[=<options>]

                  按完整路径名加载本机代理库

    -javaagent:<jarpath>[=<options>]

                  加载 Java 编程语言代理, 请参阅 java.lang.instrument

    -splash:<imagepath>

                  使用指定的图像显示启动屏幕

有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
javah:c接口唾成工具,用法详见:http://blog.csdn.net/jiuyueguang/article/details/9404237

k@k-C410:~$ javah

用法: 

  javah [options] <classes>

其中, [options] 包括:

  -o <file>                输出文件 (只能使用 -d 或 -o 之一)

  -d <dir>                 输出目录

  -v  -verbose             启用详细输出

  -h  --help  -?           输出此消息

  -version                 输出版本信息

  -jni                     生成 JNI 样式的标头文件 (默认值)

  -force                   始终写入输出文件

  -classpath <path>        从中加载类的路径

  -bootclasspath <path>    从中加载引导类的路径

<classes> 是使用其全限定名称指定的

(例如, java.lang.Object)。

jar:打包工具

k@k-C410:~$ jar

用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...

选项包括: 

    -c  创建新的归档文件

    -t  列出归档目录

    -x  从档案中提取指定的 (或所有) 文件

    -u  更新现有的归档文件

    -v  在标准输出中生成详细输出

    -f  指定归档文件名

    -m  包含指定清单文件中的清单信息

    -e  为捆绑到可执行 jar 文件的独立应用程序

        指定应用程序入口点

    -0  仅存储; 不使用情况任何 ZIP 压缩

    -M  不创建条目的清单文件

    -i  为指定的 jar 文件生成索引信息

    -C  更改为指定的目录并包含其中的文件

如果有任何目录文件, 则对其进行递归处理。

清单文件名, 归档文件名和入口点名称的指定顺序

与 'm', 'f' 和 'e' 标记的指定顺序相同。

示例 1: 将两个类文件归档到一个名为 classes.jar 的归档文件中: 

       jar cvf classes.jar Foo.class Bar.class 

示例 2: 使用现有的清单文件 'mymanifest' 并

           将 foo/ 目录中的所有文件归档到 'classes.jar' 中: 

       jar cvfm classes.jar mymanifest -C foo/。

参考:

javap的使用

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 开发教程