当前位置:首页 » 编程软件 » java运行时编译

java运行时编译

发布时间: 2024-12-31 19:09:39

‘壹’ 运行java程序时,为什么要先编译再运行,编译运行一起进行不行吗

java讲究的是 一次编译 处处运行,也就是提高了程序的一致性。java的程序之所在不同的操作系统上的运行结果是一样的,是因为java虚拟机。

所以要运行java都要装一个叫jdk的东西,里面有java的虚拟机。这个虚拟机就是来解释我们写的代码。通过这个虚拟机,就实现了代码的移植。

我们写好的程序,通过虚拟机,编译成class文件,然后在运行。但是我们只需要编译一次即可。

‘贰’ java编译和运行。

首先cd到你java文件存放的目录,比如你的java文件的名称为helloworld.java,在cmd中输入javac
helloworld.java
敲击回车,这个命令会将你的java文件编译成class文件,然后在cmd框中输入java
helloworld敲击回车就能运行你的java文件输出结果

‘叁’ jvm如何在运行时动态把java文本编译成class,然后加载到jvm

为了在Java程序运行时动态编译Java源代码并生成Class文件,避免将编译产物存到文件中,可以采用特殊的方法,例如自定义实现JavaFileManager和JavaFileObject。这类操作较为复杂,但提供了一种灵活的解决方案。

实现策略可以分为两步:首先在运行时编译Java源代码,获取编译后的字节码;其次,使用自定义类加载器在运行时定义这些类。通过这种方式,无需文件操作,直接在内存中完成编译与加载过程。

在使用编译器API进行动态编译时,可以遵循上述步骤。涉及的关键类JavaFileManager和JavaFileObject需要自定义实现,以满足特定的文件管理需求。

然而,在尝试使用Java11环境下运行上述代码时,可能会遇到编译失败的问题,而Java8环境下则能正常运行。具体原因尚未查明,可能涉及Java版本的兼容性或API实现细节的变动。

‘肆’ 简述JAVA程序的编辑编译和运行过程

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。

(4)java运行时编译扩展阅读:

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。

Java代码编译:是由Java源码编译器来完成;

Java字节码的执行:是由JVM执行引擎来完成

Java程序从源文件创建到程序运行要经过两大步骤:

1、源文件由编译器编译成字节码(ByteCode)

2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

‘伍’ Java之运行时异常与编译时异常区别

Java中用2种方法处理异常:

1.在发生异常的地方直接处理;

2.将异常抛给调用者,让调用者处理。

Java常见的异常:

(1)编译时异常:Java.lang.Exception

(2)运行期异常:Java.lang.RuntimeException

Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable;

Java.lang.RuntimeException继承自Java.lang.Exception.

编译时异常: 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

运行期异常: 这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。

‘陆’ JAVA运行文件时每次都会出现 编译出错的窗口

因为你使用的是工具,应该是你这个工具里面同时包含了多个不同的工程项目,这并不表示是你当前这个工程代码有错,而可能是其它工程存在问题。

请检查下你其它工程是否有错,如果其它工程暂时不用,可以将其从工程列表中先暂时关闭。

运行时,如果不需要再提醒,将上面的“始终运行而不询问”勾上即可。

热点内容
极光收妖脚本 发布:2025-01-03 17:52:48 浏览:818
适合玩ftp的显示器 发布:2025-01-03 17:37:45 浏览:11
不是安卓手机光遇在哪里下载 发布:2025-01-03 17:35:41 浏览:38
冒泡游戏脚本大全 发布:2025-01-03 17:26:59 浏览:121
ftp服务器显示ftp根位于 发布:2025-01-03 17:26:36 浏览:610
linuxcmysql 发布:2025-01-03 17:01:57 浏览:226
python编译实现rc4算法 发布:2025-01-03 16:43:58 浏览:514
shell脚本当前时间 发布:2025-01-03 16:26:50 浏览:768
linux的机顶盒 发布:2025-01-03 16:19:13 浏览:876
shell脚本while循环语句 发布:2025-01-03 16:13:28 浏览:937