cmd编译运行java程序的方法

 更新时间:2022年03月17日 10:09:10   作者:Harris-H  
本文主要介绍了cmd编译运行java程序的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

0.写入程序

public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}

1.编译

javac HelloWorld.java -d .
  • javac: java语言的编译器,使用命令行编译Java源文件,输出字节码文件.class.
  • sourcefiles: java源文件的相对路径,也可以使用绝对路径。
  • options: 这里使用的是-d, 即directory简写,表示输出字节码的位置,".“表示当前目录,”…“表示上级目录,”…\bin"表示在当前目录的上级目录bin,以此类推。

在这里插入图片描述

在这里插入图片描述

2.运行

java [options] classname [args]
  • java: 执行程序命令。执行顺序是启动JRE->加载class->调用class的main()方法,main方法必须是public static void main(String[] args)的样子。
  • classname: 要执行的class文件的名称,要加包名,中间以’.'隔开,比如java.lang.String
  • options: 一些可选参数[可参考Java文档]

成功打印出字符串: Hello, World!

java HelloWorld

在这里插入图片描述

3.将class输出到指定package

E:\myJava\javaSrc>javac HelloWorld.java -d ..

注意存放路径是"…"即上级目录,它表示"hello"这个package的生成路径,class文件会生成在hello包中,如果hello不存在,程序将自动创建之,在桌面上的结果,实际就是一个普通目录而已:

img

运行

java运行程序的命令是:

E:\myJava\javaSrc>java ../hello.HelloWorld

错误:找不到或无法加载主类

结果却是提示找不到class,如果我们现在将CMD打开到hello包所在同级目录下,即"myJava"目录,运行:

E:\myJava>java hello.HelloWorldHello,World!

程序成功输出了,也就是java解释器定位到了class文件。其实,java的解释器只能找到当前路径下和CLASSPATH变量存储路径中的包,所以我必须先把CMD的路径切换到hello的同级目录下,然后再运行java hello.HelloWorld。

那么如果每次都这样执行,岂不是很麻烦?

4.CLASSPATH

​ “The class path is the path that the Java Runtime Environment (JRE) searches for classes and other resource files.”----官方文档, 即CLASSPATH就是JRE寻找class文件和其它资源文件的地方,因此,为了方便运行,就有必要把我们生成的包想办法放到CLASSPATH变量中,WIn7环境下的操作方法 是:

右击“计算机”->属性->高级系统设置->环境变量->系统变量, 双击“CLASSPATH”, 在“变量值”最后输入";路径",其中";"是多个CLASSPATH的分隔符号,如图所示:

img

目前已经不需要设置CLASSPATH。

因为jdk 在该目录下有两个子目录,分别是.\bin和.\jre\bin, 前者含有用于Java程序编译以及执行的程序javac和java,后者有执行程序java。对于用Eclipse,自带编译程序,因此只需要在Path中加入%JAVA_HOME%\jre\bin,Eclipse就能运行起来,因为jdk既有编译程序也能提供执行环境。(在dos窗口下执行命令时首先会在当前目录下寻找命令相应程序,如果找不到就会去path包含目录的路径中去寻找)

5.常见错误

案例二

D:\myeclipse\Workspaces\example>javac src/com/example/controller/*.java

报错
src\com\example\controller\controller.java:3:软件包 com.example.model不存在

我们切换目录,已上文绝对路径、相对路径的知识,正确给出Java文件的路径。这时会报出错误,软件包com.xxx不存在。因为在controller.java文件中有一个import com.example.model.model,根据系统默认的classpath会在当前路径下找,即D:\myeclipse\Workspaces\example,很明显这个路径下没有com文件。

解决方法,我们告诉编译器哪个目录下会有就行了,所以需要加入选项-cp xxxx 或-classpath xxxx

D:\myeclipse\Workspaces\example>javac -cp src src/com/example/controller/*.java

加上参数-cp src,告诉编译器可以去src中找,就不会有问题了。

找不到主类

在这里插入图片描述

6.引入jar包

特别注意的是在Linux下用冒号:进行分隔,而在Windows用分号进行分割。

// 正确
D:\myeclipse\Workspaces\example\src>javac -cp .;lib/gson-2.3.1.jar com/example/view/view.java

后面加上;

在这里插入图片描述

或者前面加上.;

在这里插入图片描述

 到此这篇关于cmd编译运行java程序的方法的文章就介绍到这了,更多相关cmd编译运行java程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论