个人学习笔记(整理不易,有帮助点个赞)
笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客
目录
总结:
假如我的B.java源文件在C:\Users\AUSU\Desktop\ts里面
一般都是进入到这个目录里面编译解释
编译:javac B.java
解释:java B
注意:
解释不可能以带目录的方式去运行程序,编译可以
一:java应用程序的基本结构
一个java应用程序由若干个类组成,这些类可以在一个源文件,也可以分布在若干个源文件
java应用程序总是从主类的main方法开始执行
编译器忽略注释内容
二:编写源文件
一个源文件可以有多个类(class),但只能有一个类是public类
如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是 .java(注意这个有个点)
如果源文件没有public类,那么只要名字和某个类相同,且扩展名是.java也可以
三:保存源文件
保存类型选择为所以类型,编码选择为ANSI
四:基础了解
(1)C盘转到D盘
(2)进入某个子目录(文件夹),比如下面的进入E盘的java文件夹
(3)退出某个子目录,比如退出java文件夹
五:编译器(javac.exe)
javac B.java
在上面可以看到编译成功后出现了B.class文件(字节码文件)
如果源文件有多个类,编译源文件会生成多个扩展名为.class的文件,在每个扩展名为.class的文件中只存放一个类的字节码,其文件名与该类的名字相同。
如果文件是这个
public class B {
int a=1;
int f(int b){
a=b;
return a;
}
}
编译后得到的class文件,我使用反编译器(网上下载的)可以得到这样
public class B {
int a = 1;
int f(int paramInt) {
this.a = paramInt;
return this.a;
}
}
注意:在编译时候可能会出现的问题
(1)如果回车后出现javac不是内部或外部命令,也不是可运行的程序或批处理文件
解决方法:
方法一:重新设置环境变量
方法二:在MS-DOS命令窗口输入path D:\jdk1.6\bin(这个是你jdk)并回车,然后再编译
(2)如果出现两个公共类,而名字是B.java或者是C.java
public class B {
int a=1;
}
public class C{
int b=1;
}
编译时候会出现问题
所以符合了前面说的:源文件可以有多个类,但只能有一个类是public类
验证上面这句话:
public class B {
int a=1;
}
class C{
int b=1;
}
编译后
如果是这样也可以编译成功
public class B {
int a=1;
public class C{
int b=1;
}
}
(3)菜鸟看到的
六:解释器(java.exe)
使用java虚拟机中的java解释器(java.exe)来解释,执行其字节码文件(.class文件)
比如源文件:
public class B {
int a=1;
int f(int b){
a=b;
return a;
}
// 主类,java应用程序总是从主类的main方法开始执行
public static void main(String []args){
B b=new B();
System.out.println(b.f(3));
}
}
编译后得到的字节码文件(.class文件),使用反编译器查看
public class B {
int a = 1;
int f(int paramInt) {
this.a = paramInt;
return this.a;
}
public static void main(String[] paramArrayOfString) {
B b = new B();
System.out.println(b.f(3));
}
}
运行:java B,得到结果是3
执行过程:java虚拟机首先将程序需要的字节码文件加载到内存,然后解释执行字节码文件,加载到内存的同时就为主类中的main方法分配了入口地址。
注意:
(1)java解释器执行的类名必须是主类的名字(没有扩展名)
(2)如果解释的时候出现错误,可能是main方法没有写对,或者是系统变量不正确
在MS-DOS输入:ClassPath=D:\jdk1.7\jre\lib\rt.jar;.;然后回车确定,再使用java解释器运行主类。
(3)不可以带着目录运行程序,比如
java C:\ts\B
今天的文章java编译和运行的区别_java编写软件分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/70307.html