原文地址: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文件或工程
SpringBoot 应用动态编译 Java 源码并注入 Spring 容器,实现动态修改接口和抽象类的实现。注意,项目以 Jar 包形式启动时要在命令行引入 tools.jar 的包,IDEA下可直接调试。 基于接口、抽象类实现不停机动态调整...
JAVA代码反编译工具,把class反编译成.java文件
使用javac编译器编译Java程序的方法; 使用java命令运行Java程序的方法。 内容概要: 编写示例源码; 使用javac编译器编译Java程序; 使用java命令运行Java程序。 阅读建议: 在编写Java源代码之前,请确保已经...
本文详细介绍了如何使用javac命令来编译Java程序,并附带了示例源码。通过阅读本文,您将学习到以下内容: 编写Java源代码的示例; 打开命令提示符或终端的方法; 导航到Java源代码所在目录的步骤; 使用javac...
反编译工具jad简单用法 jad 是应用最广泛的java 反编译工具;... 这条指令将当前目录下的javatest.class反编译为javatest.java并保存在c:\\javasource目录里,其中的提示输出为中文,而不是Unicode代码。
优点:本程序不需要用户手动敲击CMD命令,只需在图形界面上用鼠标点击即可方便地编译Java源程序,并可自定义class文件的存储位置。同时,在用户点击编译、运行等按钮时,会自动生成相应的CMD命令并通过对话框显示...
(有点小问题,最好下载另一个同名资源)JCR(Java compile & run) 意思Java文件编译并执行的工具!是我学习Java一段时间后,根据我了解的编译技巧制作的一个可以对Java源文件进行快速编译的小程序。 有了它我们就不必...
安装完成后,用户可以使用 javac 命令编译 Java 程序,使用 java 命令运行 Java 程序。此外,还提供了一些常用的工具,如jar、jconsole等,方便开发人员进行项目开发和调试。 针对 Windows 用户,也可以从官方网站...
网上的textpad下载后往往没有关于Java的编译命令,这里教你如何在textpad中添加这一功能
用命令编译运行包java源代码.docx
不借助任何编译,运行工具在DOS下编译和运行java程序
用命令编译运行打包java源代码收集.pdf
用命令编译运行打包java源代码归纳.pdf
JAVA工具精品新译<5>DJ Java Decompiler 3.12.12.96 32位老朽痴拙汉化特别版(JAVA反编译之王) 使用DJ Java Decompiler可用於 2000,XP,2003,Vista,Windows7, 32位环境.你可以反编译class文件并且可以保存为文本...
JAVA 反编译工具java decompile,超赞
\java反编译Jad \java反编译Jad
用命令编译运行打包java源代码[归纳].pdf
java 编译 jar 包 编译的命令 可以打包,和解包操作的命令