zoukankan      html  css  js  c++  java
  • Java常用命令

      用多了IDE后,可能很多人都忘了用java自带的命令,但是这些命令是很有用的,下面让我来介绍一些:

      appletviewer:

        这个命令是的作用就是帮助我们查看applet小程序。

        首先你必须有一个applet小程序的代码,下面我们写了一个TestApplet.java:

    import javax.swing.*;
    import java.awt.*;
    /*
        <APPLET  code=TestApplet.class   width=200  height=300></APPLET>
    */
    public class TestApplet extends JApplet {
        public void init() {
            getContentPane().add(new JLabel("Applet!"));
        }
    } 

        这个代码很简单,我们还需要将它编译成class文件,生成TestApplet.class,一个很关键的点就是我们必须写进那个注释的内容,定义的是一个标签,然后我们使用:

    appletviewer TestApplet

        使用该命令就可以看到一个小程序出现了,除此之外,还是用该命令搭配html文件,这个文件中也是需要有applet标签的:

    <!doctype html>
    <html>
        <head></head>
        <body>
            <APPLET code=TestApplet.class   width=200  height=300></APPLET>
        </body>
    </html>

    使用下命令也可以看到相同的效果:

    appletviewer TestApplet.html

      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                    出现警告时终止编译
      @<文件名>                     从文件读取选项和文件名 

      用了javac命令之后对一个文件进行编译之后,可以生成class文件,利用-verbose选项输出有关编译器方面的消息,下面我写了一个简单的Hello程序进行测试,测试结果如下:

      java:

        java是用来执行class文件的,若你的类中没有可以执行的main方法,就不能执行了。

    用法: java [-options] class [args...]
               (执行类)
       或  java [-options] -jar jarfile [args...]
               (执行 jar 文件)
    其中选项包括:
        -d32          使用 32 位数据模型 (如果可用)
        -d64          使用 64 位数据模型 (如果可用)
        -server       选择 "server" VM
        -hotspot      是 "server" 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>
                      使用指定的图像显示启动屏幕

      演示一个简单的java命令使用:

      jar:

        jar命令主要是用于打jar包,很多人很说用c或者c++可以生成exe文件,双击就运行,用这个命令生成jar后,也可以双击运行,只不过前提是你必须配置了java的运行环境。

    用法: 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' 标记的指定顺序相同。

      示例:将Hello.class和World.class文件打包进HelloWorld.jar

    I:codejava20140330>jar -cvf HelloWorld.jar Hello.class World.class
    已添加清单
    正在添加: Hello.class(输入 = 401) (输出 = 275)(压缩了 31%)
    正在添加: World.class(输入 = 409) (输出 = 282)(压缩了 31%)

      javadoc:

        javadoc命令主要是生成帮助文档。

    用法: javadoc [options] [packagenames] [sourcefiles] [@files]
    -overview <file>          从 HTML 文件读取概览文档
    -public                   仅显示 public 类和成员
    -protected                显示 protected/public 类和成员 (默认值)
    -package                  显示 package/protected/public 类和成员
    -private                  显示所有类和成员
    -help                     显示命令行选项并退出
    -doclet <class>            通过替代 doclet 生成输出
    -docletpath <path>        指定查找 doclet 类文件的位置
    -sourcepath <pathlist>    指定查找源文件的位置
    -classpath <pathlist>     指定查找用户类文件的位置
    -exclude <pkglist>        指定要排除的程序包列表
    -subpackages <subpkglist> 指定要递归加载的子程序包
    -breakiterator            计算带有 BreakIterator 的第一个语句
    -bootclasspath <pathlist> 覆盖由引导类加载器所加载的
                               类文件的位置
    -source <release>         提供与指定发行版的源兼容性
    -extdirs <dirlist>        覆盖所安装扩展的位置
    -verbose                  输出有关 Javadoc 正在执行的操作的信息
    -locale <name>            要使用的区域设置, 例如 en_US 或 en_US_WIN
    -encoding <name>          源文件编码名称
    -quiet                    不显示状态消息
    -J<flag>                  直接将 <flag> 传递到运行时系统
    -X                        输出非标准选项的提要
    
    通过标准 doclet 提供:
    -d <directory>                    输出文件的目标目录
    -use                              创建类和程序包用法页面
    -version                          包含 @version 段
    -author                           包含 @author 段
    -docfilessubdirs                  递归复制文档文件子目录
    -splitindex                       将索引分为每个字母对应一个文件
    -windowtitle <text>               文档的浏览器窗口标题
    -doctitle <html-code>             包含概览页面的标题
    -header <html-code>               包含每个页面的页眉文本
    -footer <html-code>               包含每个页面的页脚文本
    -top    <html-code>               包含每个页面的顶部文本
    -bottom <html-code>               包含每个页面的底部文本
    -link <url>                       创建指向位于 <url> 的 javadoc 输出的链接
    -linkoffline <url> <url2>         利用位于 <url2> 的程序包列表链接至位于 <url> 的文档
    -excludedocfilessubdir <name1>:.. 排除具有给定名称的所有文档文件子目录。
    -group <name> <p1>:<p2>..         在概览页面中, 将指定的程序包分组
    -nocomment                        不生成说明和标记, 只生成声明。
    -nodeprecated                     不包含 @deprecated 信息
    -noqualifier <name1>:<name2>:...  输出中不包括限定符的列表。
    -nosince                          不包含 @since 信息
    -notimestamp                      不包含隐藏时间戳
    -nodeprecatedlist                 不生成已过时的列表
    -notree                           不生成类分层结构
    -noindex                          不生成索引
    -nohelp                           不生成帮助链接
    -nonavbar                         不生成导航栏
    -serialwarn                       生成有关 @serial 标记的警告
    -tag <name>:<locations>:<header>  指定单个参数定制标记
    -taglet                           要注册的 Taglet 的全限定名称
    -tagletpath                       Taglet 的路径
    -Xdocrootparent <url>             将文档注释中出现的所有后跟 /.. 的 @docRoot 替换为 <url>
    -charset <charset>                用于跨平台查看生成的文档的字符集。
    -helpfile <file>                  包含帮助链接所链接到的文件
    -linksource                       以 HTML 格式生成源文件
    -sourcetab <tab length>           指定源中每个制表符占据的空格数
    -keywords                         使程序包, 类和成员信息附带 HTML 元标记
    -stylesheetfile <path>            用于更改生成文档的样式的文件
    -docencoding <name>               输出编码名称

      示例:

    I:codejava20140330>javadoc Hello.java World.java
    正在加载源文件Hello.java...
    正在加载源文件World.java...
    正在构造 Javadoc 信息...
    标准 Doclet 版本 1.7.0_17
    正在构建所有程序包和类的树...
    正在生成Hello.html...
    正在生成World.html...
    正在生成package-frame.html...
    正在生成package-summary.html...
    正在生成package-tree.html...
    正在生成constant-values.html...
    正在构建所有程序包和类的索引...
    正在生成overview-tree.html...
    正在生成index-all.html...
    正在生成deprecated-list.html...
    正在构建所有类的索引...
    正在生成allclasses-frame.html...
    正在生成allclasses-noframe.html...
    正在生成index.html...
    正在生成help-doc.html...

      javah:

        这个命令主要是用于生成头文件,可以用于jni,即是在java中调用c或者c++的代码。

    用法:
      javah [options] <classes>
    其中, [options] 包括:
      -o <file>                输出文件 (只能使用 -d 或 -o 之一)
      -d <dir>                 输出目录
      -v  -verbose             启用详细输出
      -h  --help  -?           输出此消息
      -version                 输出版本信息
      -jni                     生成 JNI 样式的标头文件 (默认值)
      -force                   始终写入输出文件
      -classpath <path>        从中加载类的路径
      -bootclasspath <path>    从中加载引导类的路径
    <classes> 是使用其全限定名称指定的

      native2ascii:

        这个命令是将将含有本地编码字符(既非 Latin1 又非 Unicode 字符)的文件转换为 Unicode 编码字符的文件。

    I:codejava20140330>native2ascii
    你好
    u4f60u597d

      serialver:

        该命令的作用返回serialverUID。

    用法: serialver [-classpath 类路径] [-show] [类名称...]

      运用该命令的类必须是可序列化的。

      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

      示例:

    I:codejava20140330>javap Hello.class
    Compiled from "Hello.java"
    public class Hello {
      public Hello();
      public static void main(java.lang.String[]);
    }
  • 相关阅读:
    173. Binary Search Tree Iterator
    199. Binary Tree Right Side View
    230. Kth Smallest Element in a BST
    236. Lowest Common Ancestor of a Binary Tree
    337. House Robber III
    449. Serialize and Deserialize BST
    508. Most Frequent Subtree Sum
    513. Find Bottom Left Tree Value
    129. Sum Root to Leaf Numbers
    652. Find Duplicate Subtrees
  • 原文地址:https://www.cnblogs.com/rayguo/p/3631641.html
Copyright © 2011-2022 走看看