首页 > 编程知识 正文

java不能正常执行,java能编译 不能执行怎么解决

时间:2023-12-28 11:56:58 阅读:328038 作者:TATP

本文目录一览:

为什么我的Java程序不能运行呢?

因为你没有安装jdk或者没有配置java的环境变量,

如果是前者,你要下载安装jdk。

如果已经安装了,那么就说明你没有在环境变量里面配置。

方法如下,右键我的电脑--属性--高级系统设置,

在弹出的窗口中选择--高级标签页,然后点击下方的环境变量,

在系统变量中查找path变量,

双击它,在里面添加jdk的bin目录的路径

例如D:Program Filesjdk_1.6.0_10bin;

注意要跟其他的路径用英文的分号隔开;

Java运行不了为什么?

编译通过了,执行的时候在类加载的时候报ClassFormatError的运行时错误,提示要让你查看安装的是否正确。可以在程序中卸载所有的jdk,然后再次重新安装。

java 程序运行错误怎么办?

看是发生了什么错误,大多数错误都可以通过改写原编码来解决。

程序的错误可以抽象分为三类:语法错误、运行错误和逻辑错误。

1、语法错误

是指由于编程中输入不符合语法规则而产生的。程序编译就通不过,程序不能运行起来。此类错误最简单,调试起来比较容易

例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。通常,编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式列举出来,又称为编译错误。

语法错误的调试,则可以由集成开发环境提供的调试功能来实现,在程序进行编译时,编译器会对程序中的语法错误进行诊断。

编译诊断的语法错误分为3中:致命错误、错误和警告。

(1)致命错误:这个错误大多是编译程序内部发生的错误,发生这类错误时,编译被迫中止,只能重新启动编译程序,但是这类错误很少发生,为了安全,编译前最好还是先保存程序。

(2)错误:这个错误通常是在编译时,语法不当所引起的。例如:括号不匹配,变量未声明等。产生这类错误时,编译程序会出现报错提示,我们根据提示对源程序进行修改即可。这类错误是出现最多的。

(3)警告:是指被编译程序怀疑有错,但是不确定,有时可强行通过。例如:没有加void声明的主函数没有返回值,double数据被转换为float类型等。这些警告中有些会导致错误,有些可以通过。

常规解决方法:此类错误一般程序编译系统会自动提示相应的错误地点和错误原因,比如哪一行代码少了个括号等诸如此类的提示,常见的错误,看懂直接改正即可,如果是看不懂原因,可以将错误提示信息输入搜索引擎查找一下,一般都能找到具体的解决办法。或者有些编程平台会本身提供一个本地或者在线的信息库,提供详细的错误原因和解决办法,比如微软的.NET开发平台。

2、运行错误

指程序在运行过程中出现的错误。程序通过语法错误检测,但是运行的时候出现错误,导致程序被迫终止,此类错误有特定的发生条件,因此能够准确的定位错误代码段,因而调试也比较方便。

例如:除法运算时除数为0 、数组下标越界、文件打不开、磁盘空间不够、数据库连接错误等。

此类错误发生时,编译平台一般也会提示相应的信息,对于常规的错误会有比较精确地提示,但有时提示的错误原因会比较模糊,但因为此类错误一般在程序运行时,只在特定的条件下才会发生,所以根据错误发生的条件,能够大致判断程序出错的代码段,结合错误的原因,也能比较方便的调试出错误。

3、逻辑错误

程序运行后,没有得到设计者预期的结果,这就说明程序存在逻辑错误。这种错误在语法上是有效的,但是在逻辑上是错误的。

程序运行了,也没有出错,但是执行出来的结果不是用户想要的,分为两种情况:

A、       能够看出错误:比如查询工资大于5000的人员名单,却出现了3000的;

B、       看不出错误,直到因缘际会发现程序肯定出错了,后果很严重:比如进行一个符合大型运算,把某个常数输入错了,最后的结果人工无法判断对错,又以该结果进行其它的运算等等,最后发现错了误差过大,就得从头排查错误。

JAVA无法运行怎么办

你需要下载一个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:JDK13LIBdt.JAR;F:JDK13LIBTOOLS.JAR;F:JDK13BIN;然后确定;

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

四、测试

(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过程了。

java编程没报错,但运行不了,怎么办?

String name=sc.next();//这是让你在操作台输入一个字符串,回车后,输出name+你输入的字符串

画圈处是控制台

java程序不能执行?

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五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。