Java程序的运行过程(执行流程)分析
站在用户的角度思考问题,与客户深入沟通,找到西安网站设计与西安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖西安地区。
1、编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
2、编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。
3、运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。
字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二进制文件,是 Java 源文件由 Java 编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。
Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。
Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。
JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。Java 的这种运行机制可以通过下图来说明。
Java 语言这种“一次编写,到处运行”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。
提示:Java 程序通过 JVM 可以实现跨平台特性,但 JVM 是不跨平台的。也就是说,不同操作系统之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。
应该是jre无法访问该类试下用jdk,在工程的buildpath下找到java system library双击然后选个jdk试试
或者换个编译器试试
不能找到那个文件的路径,你是不是把这个单个文件和你创建的那个总文件没有放在一起。你可以试着把这段代码复制一下,或者把这个文件去找到,给他和你的总文件放到一起去试试
public static void main(String[]args)
这一行打错了
public static void main(String[] args)
这样就行了,参数列表的问题。小问题,但是从侧面反映了楼主参数列表的作用不是很熟悉。
不能运行可能是环境没有配置好,代码有误等都是会导致不能正常运行的。
工具:
eclipse
方法:
打开eclipse,点击File-New-Project,选择java-java project,效果如图所示
在project name栏输入工程名称,如“Helloworld”,点击Finish
在左边的project explorer中可以找到新建的Helloworld工程,点开工程,找到src,右键,点击New-class
出现如图所示界面,在name栏输入类名,点击Finish
在创建好的Helloworld.java文件中可写入如图所示的代码
点击下图中中间的那个绿色的按钮执行文件
出现如图所示的窗口,点击ok
在下面的窗口中可以看到输出了“helloworld”,程序执行成功
因为这个类里面没有main方法,,java虚拟机默认执行的是从main方法开始的,也就是说main方法是一个程序执行入口。
你可以这样class Manager{ String username; String password; public String toString(){ return "管理员信息是: " + username + "\t" + password; }}public class Test{ public static void main(String[] args){ Manager m = new Manager(); System.out.println(m.toString()); }}