• 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[]);
    }
  • 相关阅读:
    javaWeb总结——session
    javaWeb中servlet开发——过滤器
    参数化测试
    JUnit 4中元数据的用法
    appium常用方法
    appium查看控件的方法
    appium+java+testng+maven环境搭建
    java-appium自动化测试之DesiredCapabilities
    GitHub 标星 15.3k,Java 编程思想最新中文版(On Java 8)
    【成功上岸】2年半开发经验进入梦寐以求的京东上班,附上我的上岸经验希望帮助到大家!
  • 原文地址:https://www.cnblogs.com/rayguo/p/3631641.html
Copyright © 2020-2023  润新知