java编译和运行

java编译和运行java应用程序的基本结构 编写源文件 保存源文件 额外附加 编译器(javac.exe) 解释器(java.exe)总结:假如我的B.java源文件在C:\Users\AUSU\Desktop\ts里面一般都是进入到这个目录里面编译解释编译:javacB.java解释:javaB注意:解释不可能以带目录的方式去运行程序,编译可以零…

大家好,又见面了,我是你们的朋友全栈君。

  • java应用程序的基本结构
  • 编写源文件
  • 保存源文件
  • 额外附加
  • 编译器(javac.exe)
  • 解释器(java.exe)

 

总结:

假如我的B.java源文件在C:\Users\AUSU\Desktop\ts里面

一般都是进入到这个目录里面编译解释

编译:javac B.java

解释:java B

注意:

java编译和运行

解释不可能以带目录的方式去运行程序,编译可以

 

 

零:java应用程序的基本结构

一个java应用程序由若干个类组成,这些类可以在一个源文件,也可以分布在若干个源文件

java应用程序总是从主类的main方法开始执行

编译器忽略注释内容

java编译和运行

 

 

 

一:编写源文件

一个源文件可以有多个类(class),但只能有一个类是public类

如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是 .java(注意这个有个点)

如果源文件没有public类,那么只要名字和某个类相同,且扩展名是.java也可以

 

 

二:保存源文件

保存类型选择为所以类型,编码选择为ANSI

java编译和运行

 

 

 

三:额外附加:

(1)C盘转到D盘

java编译和运行

(2)进入某个子目录(文件夹),比如下面的进入E盘的java文件夹

java编译和运行

(3)退出某个子目录,比如退出java文件夹

java编译和运行

 

 

四:编译器(javac.exe)

javac B.java

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;
}

编译时候会出现问题

java编译和运行

所以符合了前面说的:源文件可以有多个类,但只能有一个类是public类

 

验证上面这句话:

public class B {
    int a=1;
}

class C{
    int b=1;
}

编译后

java编译和运行

 

如果是这样也可以编译成功

public class B {
    int a=1;

    public class C{
        int b=1;
    }
}

java编译和运行

 

(3)菜鸟看到的(暂时还没验证)

java编译和运行

 

 

五:解释器(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方法分配了入口地址。

java编译和运行

 

注意:

(1)java解释器执行的类名必须是主类的名字(没有扩展名)

(2)如果解释的时候出现错误,可能是main方法没有写对,或者是系统变量不正确

在MS-DOS输入:ClassPath=D:\jdk1.7\jre\lib\rt.jar;.;然后回车确定,再使用java解释器运行主类。

(3)不可以带着目录运行程序,比如

java C:\ts\B

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130476.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言——五子棋人机对战

    C语言——五子棋人机对战         先说下背景吧,写下这篇博客时,博主大一在读,C语言初学者,寒假无事,便计划写几个由C语言实现的小游戏以提升编程能力。在这篇博客里分享的是可人机对战的五子棋游戏。         棋类游戏要实现初级的机器智能,其核心思想便是:感知(SENSE)->思考(THINK)->行动(ACT)。所以,本文将尽量以这个顺序介绍实现过程。(1)前期准备:    此程序中,机器…

    2022年6月29日
    29
  • 数据的本质是什么?数据的表现形式有哪些?_大数据本质是什么答案

    数据的本质是什么?数据的表现形式有哪些?_大数据本质是什么答案2010年,“数据科学家”这个称谓的发明者帕蒂尔(DJPatil)和杰夫·哈默巴赫(JeffHammerbacher)认为,一切应该以产品为中心,从数据获取、数据清洗、搭建和管理数据设施、原型开发、产品设计等方面,去实践数据的价值。一、一场以大数据为核心的智能盛宴时下仿佛大家都在谈人工智能,就像当年人人都在谈大数据一样。在不同场合上,阿里巴巴的马云、百度的李彦宏及腾讯的马化腾分别谈过自己…

    2022年10月5日
    2
  • pycharm运行无结果,无报错_pycharm看不到运行结果

    pycharm运行无结果,无报错_pycharm看不到运行结果pycharm_运行不出结果,也不报错_Processfinishedwithexitcode0用pycharm运行程序的时候,运行不出结果,也不报错,且正常退出解决1:将run→editconfigurations→runwithpythonconsole勾掉解决2:注意空格注意空格!!!我的情况是程序中一个小循环的空格缩进不对记录一下…

    2022年8月27日
    5
  • 双非本科22届暑期实习,成功拿到B站、阿里实习offer[通俗易懂]

    双非本科22届暑期实习,成功拿到B站、阿里实习offer[通俗易懂]拼一把不一定成功,但是不试试看肯定没有结果!1.前言想写这篇文章很久了,也有粉丝留言、私信问我打卡系列怎么断更了这么多天(狗头保命),首先给大家解释一下最近为什么“失踪了”?由于近两周要入职,找租房,整理微信公众号,所以没多少时间写博客,今天难得闲下来,做一篇近期总结给大家。关于交流群:有粉丝私信,建议创建一个学习群,大家互相分享校招经验,学习心得(我因为怕管理群太麻烦,而一拖再拖,不过也好歹建群了),大家可以通过我的博客首页关注一波公众号:兴趣使然的草帽路飞去获取交流群和内推群群.

    2022年5月21日
    50
  • iPhone使用教程_iphone基础使用

    iPhone使用教程_iphone基础使用iPhone史上最全的使用教程iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别这几天看见好多新人问这几个词的含义及区别。我在这儿说说我的看法,不是官方解释,不懂的学习一下,懂的绕道,如有错误,敬请指正!第一次买来时或恢复官方固件后,iPhone会处于那种只能拨打紧急电话状态,不能使用其它功能,如果要使用其它功能,就必须进行一项操作,那就是“激活”。一般有锁版的只有使…

    2025年11月23日
    5
  • 架构设计:分布式结构下,服务部署发布

    架构设计:分布式结构下,服务部署发布

    2020年11月20日
    207

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号