`

JAVA命令(1): javac,java及参数

 
阅读更多

/**1、没有包结构(默认包)

===============================================================================

*/

        

public class HelloWorldV1 {
	public static void main(String[] args) {
		System.out.println("hello world v1 .....");
	}
}

 

        D:\work\javacmd>javac HelloWorldV1.java

        

        D:\work\javacmd>java HelloWorldV1

        hello world v1 .....

        

        D:\work>java HelloWorldV1

        Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldV1

        

        D:\work>java -cp D:\work\javacmd\ HelloWorldV1

        hello world v1 .....

        

        D:\work\javacmd>javac -verbose HelloWorldV1.java

        [解析开始时间 HelloWorldV1.java]

        [解析已完成时间 11ms]

        [源文件的搜索路径: .,C:\Program Files\Java\jdk1.6.0_39\lib,C:\Program Files\Jav

        a\jdk1.6.0_39\lib\tools.jar]

        [类文件的搜索路径: C:\Program Files\Java\jdk1.6.0_39\jre\lib\resources.jar,rt.jar,jsse.jar...tools.jar]

        [正在装入 java\lang\Object.class(java\lang:Object.class)]

        [正在装入 java\lang\String.class(java\lang:String.class)]

        [正在检查 HelloWorldV1]

        [正在装入 java\lang\System.class(java\lang:System.class)]

        [正在装入 java\io\PrintStream.class(java\io:PrintStream.class)]

        [正在装入 java\io\FilterOutputStream.class(java\io:FilterOutputStream.class)]

        [正在装入 java\io\OutputStream.class(java\io:OutputStream.class)]

        [已写入 HelloWorldV1.class]

        [总时间 191ms]

        

        

        win7下使用powershell,类似cmd,但可以使用shell命令

        PS D:\work\javacmd> java -verbose HelloWorldV1 > r.txt 

        [Opened C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.Object from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.io.Serializable from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.Comparable from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.CharSequence from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.String from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.reflect.GenericDeclaration from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.reflect.Type from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.reflect.AnnotatedElement from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.Class from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.Cloneable from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.ClassLoader from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.ref.Reference,java.lang.reflect.*

        ...

        [Opened C:\Program Files\Java\jdk1.6.0_39\jre\lib\charsets.jar]

        ...

        [Loaded java.security.Principal from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded HelloWorldV1 from file:/D:/work/javacmd/]

        hello world v1 .....

        [Loaded java.lang.Shutdown from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        [Loaded java.lang.Shutdown$Lock from C:\Program Files\Java\jdk1.6.0_39\jre\lib\rt.jar]

        加载300+类

        

        -classpath: 简写cp

        

        -verbose: 冗长输出。它包括了每个所加载的类和每个所编译的源文件的有关信息。

        

        -g: 生成所有的调试信息{包括vars-局部变量,缺省:{source-源文件,lines-行号}}

        -g:none

        

        -d: 设置生成的class文件的目录

                PS D:\work\javacmd> javac -verbose -d ./bin HelloWorldV1.java

        

        -sourcepath: 指定源文件路径,默认取classpath

                PS D:\work> javac -verbose -d ./javacmd/bin -sourcepath javacmd javacmd/HelloWorldV1.java

                PS D:\work> javac -verbose -d d:/work/javacmd/bin -sourcepath d:/work/javacmd javacmd/HelloWorldV1.java

 

 

/** 2、多个class文件。

===============================================================================

*/

package study.timeriver;

public class ConsoleV3 {
	public static void print(String str) {
		System.out.println("Console.print: "+str);
	}
	public static void main(String[] args) {
		System.out.println("I am ConsoleV3.....");
	}
}

 

package study.timeriver;

public class StringUtilV3 {
	public static void print(String str) {
		ConsoleV3.print("StringUtil.print: "+str);
	}
	public static void main(String[] args) {
		System.out.println("I am StringUtilV3.....");
	}
}

 

package study.timeriver;

public class HelloWorldV3 {
	public static void main(String[] args) throws Exception {
		StringUtilV3.print("hello world .....");
		Thread.sleep(1000000);
	}
}

 

        逐个编译class文件(3个文件:会自动编译关联的。但是不能运行。)

        PS D:\work\javacmd> javac -d ./classes ./src/study/timeriver/ConsoleV3.java

        PS D:\work\javacmd> java -cp ./classes study.timeriver.ConsoleV3

        I am ConsoleV3.....

        

        PS D:\work\javacmd> javac -cp ./classes -d ./classes ./src/study/timeriver/StringUtilV3.java

        PS D:\work\javacmd> java -cp ./classes study.timeriver.StringUtilV3

        I am StringUtilV3.....

        

        PS D:\work\javacmd> javac -cp ./classes -d ./classes ./src/study/timeriver/HelloWorldV3.java

        PS D:\work\javacmd> java -cp ./classes study.timeriver.HelloWorldV3

        Console.print: StringUtil.print: hello world .....

        

        

        打包根目录下面的文件:

        jar cvf helloworldv3.jar ConsoleV3.class HelloWorldV3.class StringUtilV3.class   

        jar打包与直接压缩的区别:多了一个文件: META-INF/MANIFEST.MF

                Manifest-Version: 1.0

                Created-By: 1.6.0_39 (Sun Microsystems Inc.)

                

        打包指定目录(无效)        

        PS D:\work\javacmd> jar cvf helloworldv3.jar .\classes        

        

        执行jar包

        PS D:\work\javacmd> java -jar .\helloworldv3.jar

        Failed to load Main-Class manifest attribute from .\helloworldv3.jar

        

        打包指定目录

        PS D:\work\javacmd\classes> jar cvf helloworldv3.jar .\study

        标明清单(manifest)

        增加:study/(读入= 0) (写出= 0)(存储了 0%)

        增加:study/timeriver/(读入= 0) (写出= 0)(存储了 0%)

        增加:study/timeriver/ConsoleV3.class(读入= 689) (写出= 404)(压缩了 41%)

        增加:study/timeriver/HelloWorldV3.class(读入= 393) (写出= 270)(压缩了 31%)

        增加:study/timeriver/StringUtilV3.class(读入= 739) (写出= 429)(压缩了 41%)

        

        修改META-INF/MANIFEST.MF

        Manifest-Version: 1.0

        Created-By: 1.6.0_39 (Sun Microsystems Inc.)

        Main-Class: study.timeriver.HelloWorldV3

        

        PS D:\work\javacmd\classes> java -jar .\helloworldv3.jar

        Console.print: StringUtil.print: hello world .....

 

/** 3、自定义bat批处理文件

===============================================================================

*/

 

        使用bat启动:timeriver.bat

        D:\work\javacmd\classes>timeriver.bat

        

        D:\work\javacmd\classes>echo exceute jar....

        exceute jar....

        

        D:\work\javacmd\classes>start "tt" "C:\Program Files\Java\jdk1.6.0_39\bin\java"

        -classpath "helloworldv3.jar" study.timeriver.HelloWorldV3

 

/** 4、tomcat的bat批处理文件

===============================================================================

*/

        

        tomcat的catalina.bat

        %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

        

        使用

        echo _EXECJAVA.......................

        echo %_EXECJAVA%

        pause

        goto end

        输出变量。替换

        

        start "hh" "C:\Program Files\Java\jdk1.6.0_39\bin\java"  -Djava.util.logging.config.file="D:\tomcat\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs="D:\tomcat\endorsed" -classpath "C:\Program Files\Java\jdk1.6.0_39\lib\tools.jar;D:\tomcat\bin\bootstrap.jar" -Dcatalina.base="D:\tomcat" -Dcatalina.home="D:\tomcat" -Djava.io.tmpdir="D:\tomcat\temp" org.apache.catalina.startup.Bootstrap

 

 

/** 5、-D参数,args参数                                              

===============================================================================

*/                               

public class Test {
	public static void main(String[] args) {
		//eclipse中:args在Program arguments,-D在VM arguments
		if(args.length >= 2){
			System.out.println(args[0]);
			System.out.println(args[1]);
		}
		System.out.println("args......");
		System.out.println("-DmyConf="+System.getProperty("myConf"));;
	}
}

 

        D:\work\javacmd>java -DmyConf="conf/myConf.xml" Test wnj,ok good well 

        wnj,ok                                                               

        good                                                                 

        args......                                                           

        -DmyConf=conf/myConf.xml   

分享到:
评论

相关推荐

    java与javac命令详解

    例子 1:单独的一个 Java 主程序 首先,我们创建一个名为 dog.java 的 Java 源文件,内容如下: public class dog { public static void main(String[] args) { System.out.println("我是一只小狗"); } } 然后...

    java命令参数大全(pdf版)

    Java命令通常以`java`或者`javac`为起点,其中`java`用于执行已编译的Java类文件,而`javac`则是用于编译Java源代码。这里我们将主要聚焦于`java`命令的参数。 1. **-version**: 显示Java版本信息。这对于确保你的...

    让EditPlus支持javac,java命令.rar

    《在EditPlus中配置javac和java命令》 在IT行业中,编辑器是开发者的重要工具,而EditPlus作为一款功能强大的文本编辑器,因其简洁的界面、高效的代码编写功能以及丰富的自定义设置,深受广大程序员的喜爱。然而,...

    让EditPlus支持javac,java命令.pdf

    《让EditPlus支持javac,java命令》 对于初学者而言,使用编辑器直接运行Java程序无疑极大地简化了开发流程,免去了在命令行反复切换的繁琐步骤。EditPlus作为一款功能强大的文本编辑器,通过配置可以实现对Java编译...

    关于java的常用dos命令

    示例命令`javac-d.filename.java`,其中`-d`选项指定了编译后的.class文件存放目录。如果源代码位于特定包内,如`hello.java`中的`jiang.xu`包,编译后会在相应目录结构下生成`.class`文件。 - **java**:Java解释器...

    使用Java编写脚本来将PDF转换为图像,Java的PDF处理库,Apache PDFBox

    1、导航到包含Java文件的目录,并执行以下命令来编译Java文件: javac PDFToImageConverter.java 2、执行以下命令来运行生成的类文件,并提供PDF文件的路径和输出文件夹的路径作为命令行参数: java ...

    JAVA和JAVAC 命令详细介绍

    文档将详细介绍javac和java命令的使用方法,包括-classpath和-sourcepath等参数的用法,以及它们在不同操作系统中的适应性和差异性。 在Java开发中,javac是Java的编译器,它将Java源代码编译成字节码文件(.class...

    JAVA命令大全.pdf

    本文将从给定文件的标题和部分内容中提取出与Java命令相关的知识点。 首先,Java的可执行文件通常位于Java开发工具包(JDK)的bin目录中。这个目录下包含了多个重要的命令行工具,其中一些我们可以在给定文件的部分...

    让EditPlus支持javac,java命令[归纳].pdf

    《EditPlus支持javac,java命令的配置与使用详解》 在软件开发过程中,一个高效且功能丰富的文本编辑器能够极大地提升开发效率。EditPlus作为一款功能强大的文本编辑器,深受程序员喜爱。本文将详细介绍如何配置...

    java常见命令指南

    Java命令主要包括编译、运行、调试、性能监控等多个方面,其中`javac`用于编译源代码,`java`用于执行已编译的字节码,而`jps`、`jstat`等工具则用于系统监控和故障排查。本文主要关注`java`命令的高级用法,特别是...

    java中常用命令的详解以及包与目录详解

    总的来说,理解和熟练使用`javac`和`java`命令是Java开发的基础。它们允许开发者在命令行环境中编译和运行Java程序,而无需集成开发环境(IDE)。同时,了解如何处理包和类路径对于管理大型项目尤其关键,因为这有助...

    陕西师范大学-《java程序设计》(专升本)考评作业-含答案.pdf

    * Java 程序的编译包括:javac 命令、java 命令 * Java 程序的运行包括:java 命令、javaw 命令 十二、Java 包和.import 语句 * Java 中的包包括:java.lang、java.util、java.io 等 * .import 语句用于导入包中的...

    javac命令以及appletviewer命令使用

    ### Java编译命令javac与Applet运行命令appletviewer详解 #### 一、javac命令详解 在Java编程过程中,我们通常会使用到javac命令来编译Java源代码。对于初学者或者习惯于使用集成开发环境(IDE)的人来说,了解...

    Java基础 - jar命令详解(1)打包基本的java项目(csdn)————程序.pdf

    **情景1:普通目录结构的项目** 在这种情况下,项目没有使用包结构。打包步骤如下: 1. **项目结构**:源码和编译后文件分别位于`src`和`target`目录下。 2. **编译项目**:使用`javac`命令将`src`目录下的`.java`...

    Java乱码问题

    在Java开发过程中,遇到“文件名.java:1: 错误: 编码GBK的不可映射字符”这类问题较为常见,尤其是在处理包含中文字符的代码文件时。这个问题通常出现在Windows操作系统下的开发环境中,由于编码方式不一致导致的...

    eclipse 中的javac命令与java命令

    本文将深入探讨Eclipse中的`javac`命令和`java`命令,以及它们在Eclipse工作流程中的作用。 一、Eclipse的`javac`命令 `javac`是Java编译器的命令行工具,用于将源代码(`.java`文件)编译成可执行的字节码(`....

    ARM开发板配置java运行环境成功笔记记录

    ” Java程序并使用`javac`编译,再用`java`执行: ```bash javac HelloWorld.java java HelloWorld ``` 整个过程中需要注意的是,对于资源有限的ARM设备,优化JRE是非常重要的。例如,可能需要裁剪掉不必要的库或...

    Java学习 JDK命令集 Java 学习必备

    Java命令 - **定义**:`java`命令用于执行编译后的Java程序(即`.class`文件)。 - **用法示例**: - `java ButtonEventApplet 100 200 300`:此命令将运行名为`ButtonEventApplet`的Java程序,并传递三个参数`100...

    java命令详解 高手进阶

    ### Java命令详解:高手进阶 #### Java命令概述与应用场景 在Java开发中,掌握核心命令行工具对于提升开发效率、进行深入调试至关重要。本文将详细介绍`java.exe`、`javac.exe`、`javaw.exe`、`javah.exe`、`javap...

Global site tag (gtag.js) - Google Analytics