Java命令行编译源码.java文件

Java命令行编译源码.java文件利用java的命令行来编译一个.java文件,这里以一个示例来演示如何从源代码编译成.class文件,然后如何执行.class文件。

Java命令行编译类

做了j2EE的开发也有一段时间了,今天突然想到了在大学时期学习的利用命令行来编译java,所以晚上自己写了个简单的例子,结果还是遇到了一些问题。呵呵,看来IDE用多了。

一、        配置环境变量

1.     配置JAVA_HOME

根据jdk的安装位置,配置该参数,例如:

D:/Program Files/Java/jdk1.6.0_17

 

2.     配置CLASSPATH

CLASSPATH的作用是告诉java(或者javac)命令当前的编译过程中所需要的类的存放位置,配置这个变量后执行java命令的时候就不用再次指定jar包所在位置,我的机器上的配置如下:

%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;

 

3.     配置path

cmd模式中,我们执行java命令和javac命令,如果都可以执行则不需要再次配置了,说明以前已经配置成功了。如果java命令执行不成功,则path增加一项在以前path的值后边新增加一项),如下:

D:/Program Files/Java/jdk1.6.0_17

       如果javac命令执行不成功,则在path再新增一项,如下:

D:/Program Files/Java/jdk1.6.0_17/bin

      

              正确的执行如下:

             

C:/Users/Administrator>java -version

java version “1.6.0_24”

Java(TM) SE Runtime Environment (build 1.6.0_24-b07)

Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)

 

C:/Users/Administrator>javac

用法:javac <选项> <源文件>

其中,可能的选项包括:

  -g                         生成所有调试信息

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

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

  -nowarn                    不生成任何警告

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

 

二、        编写java源码并编译

1.     编写Say.java源码

新建一个Sayjava文件,代码如下:

package com.csdn.test;

 

public class Say {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       System.out.println(我说出一句话了。);

    }

}

 

2.     编译Say.java源码

执行javac命令编译源代码,下面得蓝色部分说明javac执行成功了,并在当前目录下生成了Say.class文件,如下:

Microsoft Windows [版本 6.1.7600]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

 

C:/Users/Administrator>d:

 

D:/>cd temp

 

D:/temp>javac Say.java

 

 

 

3.     执行编译后的Say.class文件

调用java命令执行Say.class文件,发现有错误,错误信息如下:

D:/temp>java Say

Exception in thread “main” java.lang.NoClassDefFoundError: Say (wrong name: com/csdn/test/Say)

        at java.lang.ClassLoader.defineClass1(Native Method)

        at java.lang.ClassLoader.defineClassCond(Unknown Source)

        at java.lang.ClassLoader.defineClass(Unknown Source)

        at java.security.SecureClassLoader.defineClass(Unknown Source)

        at java.net.URLClassLoader.defineClass(Unknown Source)

        at java.net.URLClassLoader.access$000(Unknown Source)

        at java.net.URLClassLoader$1.run(Unknown Source)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(Unknown Source)

        at java.lang.ClassLoader.loadClass(Unknown Source)

        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

        at java.lang.ClassLoader.loadClass(Unknown Source)

Could not find the main class: Say.  Program will exit.

 

4.     正确执行Say.class的方法

为什么上边的“java Say”命令会报错误的名字“com/csdn/test/Say”呢?我们回忆下我们把一个com.csdn.test.Say的类部署到应用的classes目录下是如何部署的。每个包都需要放到一个文件夹下,java的命令行也是。我们在当前目录下依次建立com/csdn/test目录,把编译后的Say.class拷贝到test目录后,我们再执行下,执行过程如下:

D:/temp>java com.csdn.test.Say

我说出一句话了。

 

D:/temp>

如上面的红色部分,成功执行了Say.class中的main方法。

今天的文章Java命令行编译源码.java文件分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/26380.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注