首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

javajavac编译运行java程序

目录 目录 前言 编译命令介绍 javac java 代码编译与运行 java类发现规则 分离classjava文件 参考链接 前言 给自己定了一个月学习JVM虚拟机的计划,不管有没有卵用,学点新东西总是好的...下面,主要是总结一些如何在命令行中编译java程序。主要是想记录总结一下java的类发现原则。 编译命令介绍 其实,java编译过程主要使用了javacjava两个命令。...javac javac用于将java文件编译成byte-code class文件。...那之所以会遇到这个问题,就是由于Ecplise这种编译器替我们掩盖了java是有类发现规则的。 java类发现规则 要想成功的编译执行java文件,是需要有classpath包名的共同配合。...CompileClass.java 执行的时候,命令如下: java -classpath ".." jvm.CompileClass ---- 分离.class.java文件 在了解了java类发现规则之后

2.9K30

Java基础14:离开IDE,使用javajavac构建项目

(关注公众号后回复”资料“即可领取 3T 免费技术学习资源以及我我原创的程序员校招指南、Java学习指南等资源) 前言:本文教你怎么用javacjava命令,讲解了classpath的原理,以及如何利用脚本...B.classB.java 如果同时找到了B.classB.java,则: •如果B.classB.java内容一致,则遵循B.class。...使用javac构建项目 这部分参考: https://blog.csdn.net/mingover/article/details/57083176 一个简单的javac编译 新建两个文件夹,src...protected类成员,这是默认的 -p -private 输出所有类成员 -s 输出内部类型签名 -c 输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令, -verbose...可以通过字节码源代码的对比,深入分析java的编译原理,了解和解决各种Java原理级别的问题。

1.6K00

Java基本功】离开IDE,使用javacJava构建项目

前言:本文教你怎么用javacjava命令,讲解了classpath的原理,以及如何利用脚本(shell或bat)进行项目部署,离开ide,还原最本质的Java编译运行过程,并用简单的实例展示这些用法...B.classB.java 如果同时找到了B.classB.java,则: •如果B.classB.java内容一致,则遵循B.class。...使用javac构建项目 这部分参考: https://blog.csdn.net/mingover/article/details/57083176 一个简单的javac编译 新建两个文件夹,src...protected类成员,这是默认的 -p -private 输出所有类成员 -s 输出内部类型签名 -c 输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令, -verbose...可以通过字节码源代码的对比,深入分析java的编译原理,了解和解决各种Java原理级别的问题。

1.6K20

cmd中javacjava使用及注意事项

例如:javac hello.java 将生成hello.class文件。 java:是运行字节码文件;由java虚拟机对字节码进行解释运行。...为了方便大家理解javacjava编译运行过程,可以看下图: 至此,我相信大家应该对javacjava使用有了比较客观的了解。 四、答疑: 接下来,我们来看一下大家在实践中容易遇到的问题。...javac Hello.java java Hello 问题二:javac命令报错,如下图 javac命令报错,一般都是java代码有误,需要检查修改。...java源码修改后,需要把之前生成的class文件删除,从新运行javacjava命令。...环境变量修改后,一定要重启cmd命令行窗口,再把把之前生成的class文件删掉,重新运行javacjava命令。

44120

javacjava命令行中的-classpath选项

javacjava命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点 先来看几个小例子: 一、测试java命令中的..., 执行javac -d d:/test1/target Hello.java 此时target目录中将生成com/cn/andy/Hello.class 此处需要了解下面的命令: javac-d destdir...,则在任意的目录中执行javacom.cn.andy.Hello都可以正常执行 二、测试javac编译命令中的-classpath参数 1.编写User.java ?...4、 将classpath环境变量完全清除 5、 进入到d:/test1/src/com/cn/andy目录,执行javac -d d:/test1/targetHello2.java ?...6、 执行javac -classpath d:/test1/src -d d:/test1/target Hello2.java编译成功 (1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类

7.8K40

Java底层-Javac编译器

我们初学Java的时候,通常都会接触过这样一个命令: javac XX.java 当我们执行这个命令后,就会得到一个class文件,这一步其实就是编译,在前面一节我们提及到Java不同于C/C++,它首先需要将...Java文件编译成class文件, 然后再由JVM将二进制文件代码转为与机器适配的机器码,而java文件编译成class文件就是由Javac编译器来完成。...这一节主要来看Javac编译器,关于后端运行时编译器大家可以参考下之前写的的文章:Java的即时编译,这篇文章是很早以前看深入理解Java虚拟机书籍时候写的,后面可能会重新再整理一篇。...Javac编译是使用Java语言实现的,是不是很疑惑,用Java语言编写一个javac编译器去编译Java,那Javac的源码又是如何被编译执行的呢(好像鸡生蛋还是蛋生鸡的问题)?...,而C最开始的编译器是汇编实现),而后用这款编译器编译一个Java实现Java编译器, 而后再次用这个Java编译器编写更加优秀的Java编译器,通过不断的自举最终得到我们知道的javac的编译器。

1.9K30

Linux下javajavac版本不同(设置用户默认的java版本)解决方法

我的Ubuntu下安装了OpenJDKOracle的JDK,然后我在用户自己的配置文件(~..../profile)中设置JAVA_HOME(24到28行), 然后,我在命令行中执行java -versionjavac -version发现其版本号不一样。...我用which命令判断其javajavc的命令,发现javac其实是/usr/bin/javac下的,再用file查看其属性,发现是/etc/alternatives/javac的一个符号链接。...于是,我想起了网上很多使用sudo update-alternatives命令设置默认JDK的方法,其实,该方法的实质就是将你自己安装的JDK中javajavac等命令复制到/etc/alternatives...java是你安装的JDK中的java,所以这样实质上执行的就是你安装的JDK。

2.2K40

深入理解Java虚拟机–javac命令

javac "src/Program Files/MyClass.java" 在没使用分号的情况下,对相同路径下的多个 .java 源码文件进行编译,可以使用”*”通配符,此时例1可以写成如下形式: javac...src/*.java javac src/*Class.java 如果需要编译的 .java 源文件数量较多,为缩短简化javac命令,可以把要编译的 .java 源文件的文件名(必要时包含路径)存储到一个文件中...javac -cp bin -d bin MyClass.java javac -classpath bin -d bin MyClass.java 如果需要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符...java源码文件的路径则可以通过-sourcepath来设定,默认情况下-sourcepath-classpath的路径一样。...缺省情况下,只生成行号源文件信息。

1.2K10

什么是Javac

Javac 编译器的任务就是讲java语言规范转化成Java虚拟机语言规范,完成 “翻译工作” 什么是Javac Javac 是一种编译器,能将一种语言规范转化成另外一种语言规范。...从某种意义上来说,有了编译器才有了程序语言的繁荣,因为片一起是人类机器沟通的一个纽带。那么回过头来,javac的编译器也是将Java这种对人非常友好的编程语言编译成对所有机器都非常友好的语言。...如何系哦啊出不同种类,不同机器之间的差别,这个任务就由JVM来完成,而Javac的任务就是将Java源代码语言先转化成JVM能够识别的一种语言,然后由JVM将JVM语言再转化成当前这个机器能够识别的机器语言...所以这样看来,Java语言向开发者屏蔽了很多与木鳖机器相关的细节,使得Java语言的执行和平台无关,这也就成就了java语言的繁荣。...如下图所示,javac的任务就是将java源码编译成Java字节码,也就是JVM能够识别的二进制码。

1.2K30

Javac的实现过程

主要介绍Javac的实现过程及原理。 首先弄明白什么是JavacJavac是一种编译器,将一种语言转换为另一种语言规范。...编译器的作用就是将符合java语言规范的源代码转化为JVM虚拟机能够识别的字节码文件的过程。 对于java而言。javac任务就是将java源代码转换为jvm能够识别的二进制码。...Java的语法树使java源码更加结构化,每个语法树上的节点都是一个JCTree实例 JCTree类有三个重要属性:其实这三个属性很好理解,为了分辨出树中的每一个节点而出现的,定义了这三个属性,可以很快速的找到节点在树中的层次结构位置...类型之间相互转换 4、字节码:经过了上面的三个步骤之后,java源代码就可以被转换成为java虚拟机(JVM)能够别的字节码文件。...关于javac的基本原理就介绍到这里,有兴趣的可以研究下Javac的源码,可以从OpenJdk下载到源码。

1.5K50
领券