javac java命令的使用(java运行带包名class文件报找不到或无法加载主类)

使用javac命令编译带包名的类,然后再使用java命令运行编译后的class文件很容易报找不到或无法加载主类,原因是使用javac编译java文件时没有添加-d选项使每一级包编译为对应的文件夹

eg:

扩:

1、如果java文件中有中文,必须在javac编译的时候用-encoding选项指定编码,java运行的时候不用再-encoding了,如:

javac -encoding UTF-8 xx.java

javac -encoding "UTF-8" xx.java

选项值既可以加引号,也可以不加引号

2、如果java文件中有引用其他jar包内的文件,必须编译和运行的使用使用-classpath或-cp(classpath的缩写)选项指定寻找的jar包(多个jar包之间用分号分割,最好指定一下用点号表示的当前目录,否则运行时会找不到当前类的class文件),如:

javac -encoding UTF-8 -classpath ".;a.jar" xx.java -d . 

java -encoding "UTF-8" -cp .;a.jar x.xx

选项值既可以加引号,也可以不加引号

2.1、写程序的时候,会使用import语句来引入一些已经写好的类,设置CLASSPATH就是告诉编译器要如何去哪里找引用的类;sun 为我们提供了一些额外的丰富的类包,一个是 dt.jar,一个是 tools.jar,这两个 jar 包都位于%JAVA_HOME%lib 目录下,所以通常我们都会把这两个 jar 包加到我们的 classpath 环境变量中设置” CLASSPATH : %JAVA_HOME%libdt.jar; %JAVA_HOME%lib ools.jar;”(前面的“.”不可少,它代表了我们为自己的java类建立的工作路径,其它的是jdk自带的标准类库路径)

在jdk1.6以后,不用设定CLASSPATH,仍然能够找到jdk的类库,编译基本的JAVA程序。

原文地址:https://www.cnblogs.com/jetqiu/p/12016187.html