`

javac编译包及包引用文件

阅读更多
javac和java是sun提供的编译java文件和执行class文件的命令工具,其经过ant包装之后,可以说是很强大很方便,然后有时候写的小程序去用IDE编译,运行,显得的有些庞大,轻便轻盈的办法当然是用javac与java了。

在看下面的描述之前,请参考其他方法安装好java环境,配置好java环境变量(记得CLASSPATH最前面是 .;),

下面的示例文件纯为显示所写,基本上没什么用途,其中jdk版本——java version "1.6.0_12"。

1.单文件编译、运行

用javac和java编译运行单文件是很容易的:

假如我们有Hello.java

#Hello.java

view plaincopy to clipboardprint?
public class Hello{  
    public static void main(String []args){  
    System.out.println("Welcome to Java!");  
    }  

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

cmd到该文件所在目录,执行

javac Hello.java

java Hello

就ok了。

2.多文件编译,包引用文件编译、运行

假如我们有如下目录结构

------src

        ------com

                 ------eho

                           -------util

                                     ---------CMath.java

                                     ---------CTime.java

                           -------test

                                     ---------Test.java

------out

其中src目录是java源代码目录,out是用来存放编译之后的class文件的目录,在编译java文件之前需要手动建立存放class文件的父文件夹,在这里我们建立了out文件夹来存放。

文件

//CMath.java

view plaincopy to clipboardprint?
package com.eho.util;  
 
public class CMath {  
    public static int add(int a, int b){  
        return a + b;  
    }  
      
    public static int div(int a, int b){  
        return a/b;  
    }  

package com.eho.util;

public class CMath {
public static int add(int a, int b){
return a + b;
}

public static int div(int a, int b){
return a/b;
}
}

//CTime.java

view plaincopy to clipboardprint?
package com.eho.util;  
 
import java.util.*;  
import java.text.*;  
public class CTime {  
    public static String strDatetime(){  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        return sdf.format(new Date());  
    }  

package com.eho.util;

import java.util.*;
import java.text.*;
public class CTime {
public static String strDatetime(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(new Date());
}
}

//Test.java

view plaincopy to clipboardprint?
package com.eho.test;  
 
import com.eho.util.*;  
 
public class Test {  
 
    public static void main(String[] args) {  
        // test   
        int a = 4, b =2;  
        int sum = CMath.add(a, b);  
        System.out.println("a + b = " + sum);  
        int div = CMath.div(a, b);  
        System.out.println("a / b = " + div);  
          
        // print now  
        System.out.println(CTime.strDatetime());  
    }  

package com.eho.test;

import com.eho.util.*;

public class Test {

public static void main(String[] args) {
// test
int a = 4, b =2;
int sum = CMath.add(a, b);
System.out.println("a + b = " + sum);
int div = CMath.div(a, b);
System.out.println("a / b = " + div);

// print now
System.out.println(CTime.strDatetime());
}
}


编译及运行步骤:

a:cmd到src所在的目录

b:执行命令:javac -d ..\out com\eho\util\*.java  (多文件编译)

c:执行命令:javac -d ..\out com\eho\test\*.java (编译包引用文件)

d:执行命令:java -cp ..\out com.eho.test.Test    (运行包引用文件)

然后看到输出结果:

a + b = 6
a / b = 2
2009-03-03 23:08:08


还有一种情况就是如果只对一个有报名的类进行编译,一定要在liunx目录下建立对应的包名路径,然后编译的时候可以是: javac com.xxx.xxxx.xxx.java 或 直接在包名下进行:javac xxx.java   但是执行命令的时候,需要在和包名同级目录执行:java com.xxx.xxx.xxx.编译文件,在编译文件下不能进行执行,会找不到相关类。

如果java类文件执行的时候报warning: unmappable character for encoding ASCII,说明文件有中文,需要制定文件编码格式:命令为:javac -encoding utf-8 file_name.java

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hong201/archive/2009/03/03/3954603.aspx
分享到:
评论

相关推荐

    Dos环境下使用javac编译与java执行多个包下的.java文件

    在DOS环境下使用`javac`编译与`java`执行多个包下的`.java`文件是一项常见的Java开发任务。这通常涉及到对项目结构的理解、命令行操作以及掌握Java的编译和运行流程。下面我们将详细讲解这个过程。 首先,我们需要...

    javac源代码,java具体编译步骤

    以下是对`javac`源代码及Java编译步骤的详细解析。 1. **词法分析**:编译的第一步是读取源代码文件,并将其分解为一个个最小的有意义单元——词法单元或标记。这些标记包括关键字、标识符、操作符、常量和分隔符等...

    Ant编译打包android工程流程

    - **作用**:将资源文件(如图片、布局文件等)打包成一个单独的资源文件包,方便后续合并到最终的APK中。 6. **用apkbuilder.bat打包资源和classes.dex文件,生成unsigned.apk** - **工具介绍**:apkbuilder是一...

    java class文件编译

    Java Class文件是Java程序经过编译后的二进制表示形式,它是Java虚拟机(JVM)执行的基础。本文将深入探讨Java类文件的结构、编译过程以及如何使用提供的工具进行查看。 一、Java类文件结构 Java源代码(.java文件...

    javac的一些细节

    - 当编译一个包含包声明的类时,编译后的 `.class` 文件应存放在对应包的目录结构中。 **包的使用示例**: ```java package A; public class Hello { public static void main(String[] args) { System.out....

    JAVA--包的编译

    1. **编译时无需关注包结构**,无论使用哪种方法,只要让`javac`命令找到源文件即可。可以通过相对或绝对路径为`javac`提供源文件的位置信息。 2. **关于`classpath`的理解**,`-cp`或`-classpath`选项以及`...

    ant打包编译全套资料

    `<target>`标签用于定义一系列要执行的任务,`<taskdef>`用于引入自定义任务,`<property>`用于设置属性值,`<copy>`用于复制文件,`<jar>`用于创建JAR文件,`<javac>`用于编译Java源代码,`<delete>`用于删除文件或...

    ant脚本编译jar

    `<mkdir>`任务用于创建目录,`<javac>`任务用于编译Java源代码,`<jar>`任务则用于创建`JAR`文件。 在`<jar>`任务中,`destfile`属性指定`JAR`文件的路径,`basedir`属性指定了包含类文件的目录,这些类文件会被...

    编译好的CLASS文件

    在Java编程语言中,"编译好的CLASS文件"是指经过Java编译器(javac)处理的源代码(.java文件)所生成的目标文件。这些文件以二进制格式存储,可以直接由Java虚拟机(JVM)执行。CLASS文件包含了Java类或接口的字节...

    java命令行编译说明

    - **编译路径**:在编译一个包含包的类时,如`A`类,如果它位于包`edu.main`中,并且引用了`edu.ustc`包下的`B`类,那么`A.java`文件应位于`<base_dir>/edu/main`目录下。此时,编译`A.java`需要显式指定其完整路径...

    安卓反编译dex文件格式实例分析

    ### 安卓反编译dex文件格式实例分析 #### 第一部分:创造一个可供分析的Hello.dex ##### 测试环境 为了进行本次实验,我们需要搭建一个可靠的测试环境。本实验使用了以下配置: - **操作系统**: Ubuntu 12.04 64...

    javac 的 源 代 码

    深入理解javac的源代码对于Java程序员来说,不仅能帮助理解编译过程,还能提升编程技能和优化代码的能力。在本文中,我们将探讨javac的工作原理、关键组件以及其在Java开发中的重要性。 一、javac的基本工作流程 1...

    javac1.7源代码(完全版,可运行)

    - **javac**:Java的官方编译器,负责将.java文件编译成.class字节码文件。 - **src**:在Java开发中,src通常代表源代码目录,存放未编译的Java源文件。 - **源代码**:程序的原始文本形式,程序员可以直接理解和...

    java,class文件反编译工具

    当Java源代码(.java文件)通过Javac编译器编译后,会生成字节码文件,即.class文件。这些文件包含Java虚拟机(JVM)可执行的指令,但并不直接包含源代码。因此,如果没有源代码,就无法直接阅读和理解类文件中的逻辑。 ...

    详述Java中带包的类的编译与调试

    如果希望编译后的`.class`文件被放置在一个与包结构相匹配的目录结构中,可以使用`-d`选项来指定输出目录: ```bash javac -d /home/tarena/a/b /home/tarena/Test.java ``` 执行此命令后,`Test.class`文件...

    用命令编译运行打包java源代码收集.pdf

    这条命令告诉`javac`编译器将生成的字节码(`.class`文件)放在`classes`目录下,按照源代码的包结构组织。 2. 编译`HelloWorld.java`: ``` javac -d classes -cp classes src\org\xalg\test\HelloWorld.java ...

    javac.jar

    `javac.jar` 是 OpenJDK 中 `javac` 编译器的源码包,它揭示了 Java 编译过程的内部工作原理,对于学习 Java 编译器的工作机制、优化代码性能以及进行自定义编译器开发具有重要意义。 在 OpenJDK 的 `javac1.7` ...

    安卓apk编译反编译

    其中,Java代码由JDK的javac编译成.class文件,再通过Dex工具转化为.dex文件,这是Android设备上运行的格式。 2. **资源打包**:资源文件(如布局、图片、字符串等)被AAPT(Android Asset Packaging Tool)处理并...

    JAVA反编译工具--一个用来反编译class文件的小工具

    Java源代码在被Javac编译器处理后,会转化为一种中间格式,即字节码(.class文件),这种格式与平台无关,可以在任何支持Java的环境中运行。字节码是Java虚拟机(JVM)理解和执行的基础。 然后,我们引出“反编译”...

Global site tag (gtag.js) - Google Analytics