博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的编译、运行
阅读量:4091 次
发布时间:2019-05-25

本文共 1437 字,大约阅读时间需要 4 分钟。

一、在某个路径下运行当前路径的class文件

在路径处编写一个源文件并编译

public class HelloC {	public static void main(String[] args) {		System.out.println("Hello C");	}}

如果不小心写错类名则会报错,这个是找不到类名的常见原因之一。

二、在某个路径下去运行其他路径的class文件

我们再到其他路径,看能不能访问刚才的class文件?显然不行。

这是因为JVM只会在rt.jar、tools.jar以及当前运行目录中查找class文件。这是找不到类名的另一个常见原因。

我们只需采用把子目录helloc设置为classpath,即可运行了。

 

回顾我们安装jdk时,当时如果我们没有把jdk安装目录\bin加到Path系统变量,那么我们使用javac、java等命令时就只能进入该路径,而不能在任意路径下使用它们。上面其实也是这个道理,只不过一个是Path变量(告诉系统去哪找可执行二进制文件),一个是CLASSPATH变量(告诉JVM去哪找class文件);一个是exe、com等可执行文件,一个是class可执行程序。两者都可以在属性的环境变量那里进行永久性的设定,或者通过set临时设置:一个是通过set Path设置,一个是通过set CLASSPATH。

两者在一些细微处略有区别: Path环境变量是先在当前目录找执行程序,如果没有,再到path指定目录中去寻找。而对于classpath,不管你是通过set CLASSPATH进行设置的,还是采用java -classpath(或-cp),则只在你指定的路径下查找,除非你在-classpath后面添加当前目录。否则即使当前目录中有目标执行程序也执行不到(要在classpath的值后面加了英文分号才会当前目录中来寻找执行程序)。

使用CLASSPATH最好不要在属性那里设置某个特定的路径,因为这种设置可能导致奇怪的错误。如下面所示,我们把它设置为一个固定的路径。发现有些类即使存在也找不到。

以后在使用CLASSPATH时,不要在属性里面修改,当项目需要用到时,就用set CLASSPATH临时创建就行了。

三、Java中运行同名类的冲突现象

如上图所示,前一个目录和它的子目录有个同名的源文件,前者是打印"I love Java!",后者打印"Hello C"。分别对它们进行编译,并在cmd中做以下操作:

当两个同名的class文件都添加到CLASSPATH时,运行它们就会 出错,Java针对这种问题给出package机制。

四、Java的编译方式

Java最简单的编译方式就是直接javac 源文件,但是采用javac -d dir 源文件可以得到比较灵活的编译方式。

比如:

javac -d dir HelloWorld.java

结果:将产生的class文件放到指定的dir路径(前提这个dir路径必须存在)下面。这个dir路径可以是相对路径也可以是绝对路径。如下面所示,在目录F:\JavaFiles\SourceCode\com\jeremy\javactest有个HelloWorld.java,在cmd中编译它。

我们把class文件编译到F:\JavaFiles\SourceCode\com\jeremy\javactest\dir\dir1处,三种写法都可以产生class文件。

 

你可能感兴趣的文章
上古语言从入门到精通:COBOL 教程登上 GitHub 热榜
查看>>
哈哈哈哈,「00 后黑话破解器」火爆 GitHub,这波操作我给满分!
查看>>
再见,Eclipse...
查看>>
超全汇总!B 站上有哪些值得学习的 AI 课程...
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
GitHub 开源神器:堪称作业终结者!
查看>>
太赞了!GitHub 标星 2.4k+,《可解释机器学习》中文版正式开放!
查看>>
程序员用 AI 修复百年前的老北京视频后,火了!
查看>>
漫话:为什么你下载小电影的时候进度总是卡在 99% 就不动了?
查看>>
我去!原来大神都是这样玩转「多线程与高并发」的...
查看>>
当你无聊时,可以玩玩 GitHub 上这个开源项目...
查看>>
B 站爆红的数学视频,竟是用这个 Python 开源项目做的!
查看>>
安利 10 个让你爽到爆的 IDEA 必备插件!
查看>>
自学编程的八大误区!克服它!
查看>>
GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!
查看>>
早知道这些免费 API,我就可以不用到处爬数据了!
查看>>
【SVN】mac 终端常用 svn 命令汇总
查看>>
一篇文章教会你在 iview 的表格中动态生成图表
查看>>