java程序不能执行?

java程序不能执行?,第1张

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 平台,反之亦然。

可能是以下两种情况:

1、环境变量没有配置正确,java无法运行

2、你的jar文件中出现了异常!

调试方法:打开命令窗口--录入命令:java -jar xxx.jar,或者新建一个文本文件把后缀修改为bat,然后把上述命令保存到你新建的bat文件中,由于闪退,所以新起一行录入pause保存退出,双击运行刚建立的bat文件,就能看到原因了。

若是还不能解决,可以用滑培下面这个方法试试:

在注册表编辑器中,找到“HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command”,在其中文件打开命令中加入参数“-jar”(无引号),修改后的数值类似:“"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1"信神唯”(只需要添加-jar参数,无需修改其他信息),保瞎孝存并退出注册表编辑器。

你需要下载一个JDK(目前最新版本为java8,直接百度就可以下载)

然后配置环境液李胡变量:

JDK安装设置环境变量

一、前言

JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。目前已经正式发布的最新版本是JDK1.3。考虑到我对linux不熟悉,而且大多数闹拦都是在MS系统下,所以,在这里我用的是win2000。

二、下载,安装

下载地址为JAVA官方站点:java.sun.com,国内也到处都是。

Windows下,直接运行.exe文件,安装到一个目录,我这里用F:\jdk13作为例子。

三、配置

桌面上选择“我的电脑”(右键)

高级

环境变量

在“系统变量”--->“新建”

在变量名中输入:CLASSPATH,变量值中输入:

F:\JDK13\LIB\dt.JARF:\JDK13\LIB\TOOLS.JARF:\JDK13\BIN然后确定;

好了,配置完了,要重新启动计算机后,环境变量才能有效的。

四、测试

(1)用文本编辑器写一个简单的java程序:

public class HelloWorld {

public static void main(String args[]) {

System.out.println("Hello World!")

}

}

这个例子就是著名的“Hello World”,它的功能就是显示“Hello World”。

注意:该文件名称必须为“HelloWorld.java”,大小写也区分。细心的朋友会注意到就是和public class后的名字一样的。

(2)编译:在dos命令提示符下执行:(注意大小写)

javac HelloWorld.java

如果正常的话,将生成HelloWorld.class文件。

(3)运行:在dos命令提示符下执行:(注意大小写)

java HelloWorld

这里有一个java初学者很有可能遇到的问题(不怕笑话,我也是)就是输入:

java HelloWorld.class

多了后面的.class,一定要注意,否则会出现下面的错误:

Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld/class

(本人猜想,是不是java翻译“.”的时候换成了“/”,或者是其他的本人不知道的原因)

好了,运行java HelloWorld应该会出现伟大的“Hello World”了。

到这一步,你已经成功配置好了JDK,可以开始漫长而痛苦(对于象我一样的,以前不懂java的朋友来说,可以用“痛苦”来形容,不理解的概念,不熟悉的java api...,不过,不要急,我将和大家扰缓一起慢慢入门,慢慢提高... ...)的Java过程了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12274475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存