`
xitongyunwei
  • 浏览: 937065 次
文章分类
社区版块
存档分类
最新评论

命令编译Java

 
阅读更多

原文地址:http://hi.baidu.com/passionwas/blog/item/74aea64b44183eead72afced.html

原文有点乱,有一些疑似的文字错误,整理如下:

使用java和javac命令的几种情况:

1、单独的一个java主程序;
2、带包的一个java主程序;
3、同一个包的两个类,一个引用另一个;
4、引用不同包的其它类。
1、单独的一个java主程序
public class Joeytang
{ 
    public static void main(String[] args)
    {
        System.out.println("I am JoeyTang.");
    }
}

将命令行切换到该java文件同一目录,直接输入命令

javac Joeytang.java

则会在当前的文件夹下出现Joeytang.class类文件。如果想指定编译的同时将编译好的类文件放到一个文件夹下则可以使用-d指定路径。例如javac -d .\ Joeytang.java则是在当前目录下,javac -d ..\ Joeytang.java 在上一个文件夹,javac -d ..\ a\Joeytang.java则是在上一个文件夹下的a文件夹下,但是一定要保证指定的文件路径存在。运行该类文件,首先保证该类是具有main方法的类。然后编译完以后,使用

java -classpath .; Joeytang

就可以运行了。我开始没有加-classpath选项,老是提示说找不到类。所以一定要记住在这里加入该选项。在程序中如果调用了外部的类或者包需要在这个选项里注明,即如果使用了a.jar则要加上-classpath .; a.jar。其中前面的那个“.;”我理解成是把环境变量中配置的jar文件拿进来。

2、带包的一个java主程序
pakage my.friends
public class Joeytang
{     
  public static void main(String[] args)
  {         
    System.out.println("I am JoeyTang.");      
  }
}

这里面将Joeytang放到了my.friends包里面。在编译的时候进入到Joeytang.java同一目录,使用和上面一样的javac命令,这时候会在同一目录创建类文件,但是如果想让编译的时候将包的结构也创建出来,则可以使用-d选项

javac -d .\ Joeytang.java

这时候会在当前目录下自动根据包的结构形式创建文件目录,即创建my/friends/文件件,并将编译好的类文件放在friends文件夹下。运行的时候使用

java my.friends.Joeytang

来运行。

3、同一个包的两个类Joeytang.java文件为

pakage my.friends
public class Joeytang
{    
  public String toString()
  {
    return "Joey";
  }
}
Sunnylu.java文件为
pakage my.friends
public class Sunnylu
{
  public static void main(String[] args)
  {
    Joeytang joey = new Joeytang();
    //System.out.println("I am Sunney."+joey.toString()+" is my friend.");
    System.out.println("I am Sunney."+joey+" is my friend.");
  }
}

这种情况中Sunnylu类引用了Joeytang所以必须先编译Joeytang。按照第二种情况将Joeytang编译,之后开始编译Sunnylu,注意要使用

javac -classpath .; -d .\ Sunnylu.java

此时加入了-classpath选项,我也不知道为什么,但是如果不加编译老是提示找不到Jeoytang这个。编译完以后,来运行Sunnylu也要加入-classpath选项,

java -classpath .; my.friends.Sunnylu

4、引用不同包的其它类
Tom.java文件为
package my.partners;
public class Tom
{
  public String toString()
  {
    return "It's Tom";
  }
}
Sunnylu.java文件为
pakage my.friends
import my.partners.Tom;
public class Sunnylu
{    
  public static void main(String[] args)
  {
    System.out.println( "I am Sunny.");  
    Tom tom = new Tom();   
    System.out.println(tom + " is my partner.");  
    Joeytang joey = new Joeytang(); 
    System.out.println(joey + " is my friends.");
  }
}

这种情况首先把Joeytang编译了,然后编译Tom类,因为Tom为外部类所以在编译Sunnylu的时候一定要在-classpath注明Tom的路径,例如我把Tom类编译到当前目录的上一级目录上去了,则编译Sunnylu时使用

javac -classpath .;..\ -d .\ Jerry.java

此时编译时会到上一目录按照Tom的包结构来找Tom类。运行时一样要加入这个选项。

××××××××××××××××××××××××××××××××××××××××××
Exception in thread "main" java.lang.NoClassDefFoundError
程序:
public class TEST
{
  public static void main (String args[])
  {
    System.out.println("HELLO THIS iS A JAVA PROCEDURE");
  }
}
在命令提示符下
D:java>javac TEST.java
正常
D:java>java TEST
出现下面问题:Exception in thread "main" java.lang.NoClassDefFoundError: TEST
解决:
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
这个错误的原因就是:java解释器找不到你自己定义的类HelloWorld
假如Hello.class在D盘D:\java目录下, java.exe在C:\Java\jdk1.5.0_02\bin目录下
有两种解决办法:
1. 在命令行模式下敲入
c:>C:\Java\jdk1.5.0_02\bin\java -classpath D:\java Hello
注意, 在HelloWorld前面有一个空格.
2. 在命令行模式下输入
c:>set classpath=D:\java
c:>C:\Java\jdk1.5.0_02\bin\java Hello
以上两种方法的本质都是设定正确的classpath, 使得java
能够找到你自己定义的类.
分享到:
评论

相关推荐

    关于如何在DOS命令行模式下编译JAVA文件或工程的问题

    DOS命令行模式下编译JAVA文件或工程

    JDK8 下 SpringBoot 应用动态编译 Java 源码并注入 Spring 容器

    SpringBoot 应用动态编译 Java 源码并注入 Spring 容器,实现动态修改接口和抽象类的实现。注意,项目以 Jar 包形式启动时要在命令行引入 tools.jar 的包,IDEA下可直接调试。 基于接口、抽象类实现不停机动态调整...

    JAVA代码反编译工具

    JAVA代码反编译工具,把class反编译成.java文件

    用命令编译运行打包java源代码归纳.pdf

    1. 使用javac命令来编译Java源代码文件。 2. 使用java命令来运行Java类文件。 3. 使用jar命令来将Java类文件打包成一个jar包。 4. 在编译和运行Java源代码时,需要指定类路径和main函数所在的类。 5. 在将Java类文件...

    Java Programming Language01.ppt

    * 编译 Java 程序:使用 javac 命令编译 Java 程序,生成 .class 文件。 * 运行 Java 程序:使用 java 命令运行 Java 程序,加载字节码并执行。 Java 程序编译和运行过程: 1. 编写 Java 程序:使用文本编辑器或 ...

    Java零基础 - 使用java命令运行Java程序.md

    使用javac编译器编译Java程序的方法; 使用java命令运行Java程序的方法。 内容概要: 编写示例源码; 使用javac编译器编译Java程序; 使用java命令运行Java程序。 阅读建议: 在编写Java源代码之前,请确保已经...

    大数据必学Java基础(五):第一段程序

    在本文中,我们使用javac命令编译Java程序,然后使用java命令执行编译后的.class文件。编译和执行过程中,我们需要配置环境变量,确保javac和java命令可以正确地执行。 四、Java程序结构 Java程序结构主要包括类、...

    Java零基础 - 使用javac编译Java程序.md

    本文详细介绍了如何使用javac命令来编译Java程序,并附带了示例源码。通过阅读本文,您将学习到以下内容: 编写Java源代码的示例; 打开命令提示符或终端的方法; 导航到Java源代码所在目录的步骤; 使用javac...

    实验1Java运行环境的下载安装配置与运行.doc

    配置 Java 编译器,可以使用 javac 命令编译 Java 源代码。 2. 配置Java 解释器 Java 解释器是 Java 开发的核心工具,用于将字节码解释成机器码。配置 Java 解释器,可以使用 java 命令运行 Java 程序。 3. 配置...

    java反编译工具 jad

    反编译工具jad简单用法 jad 是应用最广泛的java 反编译工具;... 这条指令将当前目录下的javatest.class反编译为javatest.java并保存在c:\\javasource目录里,其中的提示输出为中文,而不是Unicode代码。

    Java快速编译工具

    优点:本程序不需要用户手动敲击CMD命令,只需在图形界面上用鼠标点击即可方便地编译Java源程序,并可自定义class文件的存储位置。同时,在用户点击编译、运行等按钮时,会自动生成相应的CMD命令并通过对话框显示...

    Java小白手册——环境搭建与程序调试.pdf

    * 使用javac命令编译Java源代码,生成.class文件。 * 使用java命令运行Java程序,指定类名和主方法。 3.2 调试Java程序 * 使用jdb命令调试Java程序,设置断点和追踪变量。 * 了解Java程序的调试过程和常见错误处理...

    Java快速命令编译助手(JCR)

    (有点小问题,最好下载另一个同名资源)JCR(Java compile & run) 意思Java文件编译并执行的工具!是我学习Java一段时间后,根据我了解的编译技巧制作的一个可以对Java源文件进行快速编译的小程序。 有了它我们就不必...

    jdk1.8linux和win安装包

    安装完成后,用户可以使用 javac 命令编译 Java 程序,使用 java 命令运行 Java 程序。此外,还提供了一些常用的工具,如jar、jconsole等,方便开发人员进行项目开发和调试。 针对 Windows 用户,也可以从官方网站...

    textpad中的Java编译命令的添加

    网上的textpad下载后往往没有关于Java的编译命令,这里教你如何在textpad中添加这一功能

    用命令编译运行包java源代码.docx

    用命令编译运行包java源代码.docx

    2023年java自学考试复习资料.doc

    * Java编译:使用javac命令编译Java源程序,生成字节码文件。 * Java执行:使用java命令执行字节码文件,生成可执行文件。 四、Java语言的基本数据类型 * 布尔型(boolean):一个字节,true或false。 * 字符型...

    命令行编译和运行java类

    不借助任何编译,运行工具在DOS下编译和运行java程序

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

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

    DJ Java Decompiler 3.12.12.96 老朽痴拙汉化版(JAVA反编译)

    JAVA工具精品新译<5>DJ Java Decompiler 3.12.12.96 32位老朽痴拙汉化特别版(JAVA反编译之王) 使用DJ Java Decompiler可用於 2000,XP,2003,Vista,Windows7, 32位环境.你可以反编译class文件并且可以保存为文本...

Global site tag (gtag.js) - Google Analytics