【JavaSE系列-入门篇5】——常见问题以及解决方案

目录

编译时错误

‘javac’ is not recognized as an internal or external command, operable program or batch file

如果你收到这样的错误信息,说明windows不能找到Java编译器Javac。
这有一个办法去告诉windws系统,去哪里能够找到Javac。猜测您已经安装了JDK在“C:\jdk1.8.0”目录下,你需要在cmd命令中输入如下信息:

C:\jdk1.8.0\bin\javac HelloWorldApp.java

如果你这样做的话,每次你编译或者运行程序的时候,都必须在“C:\jdk1.8.0\bin”目录下进行。避免额外的输入这些信息,你可以参考JDK8安装说明来更新环境变量。

Class names,’HelloWorldApp’ ,are only accepted if annotation processing is explicityly requested

如果你收到这样的错误信息,在编译程序的时候,你忘记输入‘.java’ 后缀了。记住,正确的命令是javac HelloWorldApp.java ,而不是 javac HelloWorldApp。

Syntax Error(语法错误)

如果您打错了程序的一部分,编译器可能会发出语法错误。该消息通常显示错误的类型,检测到错误的行号,该行上的代码以及代码中错误的位置。以下是在语句末尾省略分号(;)导致的错误:

testing.java:14: `;' expected.
System.out.println("Input has " + count + " chars.")
                                                     ^
1 error

有时,如果错误级联在几行,编译器无法猜测您的意图,并打印出混乱的错误消息或多个错误消息。例如,以下代码片段从粗体中省略了一个分号(;):

testing.java:13: Invalid type expression.
        count++
                 ^
testing.java:14: Invalid declaration.
    System.out.println("Input has " + count + " chars.");
                      ^
2 errors

编译器发出两个错误消息,因为在处理count ++之后,编译器的状态表示它在一个表达式的中间。没有分号,编译器无法知道该语句是结束。

如果看到任何编译器错误,那么你的程序没有成功编译,编译器没有创建一个.class文件。仔细验证程序,修复您检测到的任何错误,然后重试。

Semantic Errors(语义错误)

除了验证您的程序在语法上是正确的,编译器检查其他基本正确性。例如,编译器在每次使用尚未初始化的变量时都会发出警告:

testing.java:13: Variable count may not have been initialized.
        count++
        ^
testing.java:14: Variable count may not have been initialized.
    System.out.println("Input has " + count + " chars.");
                                       ^
2 errors

你的程序再次没有成功编译,编译器没有创建一个.class文件。修复错误,然后重试。

运行时错误

Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorldApp

如果您收到此错误信息,java找不到您的字节码文件HelloWorldApp.class

java尝试在你当前的目录寻找.class文件。所以如果您的.class文件位于C:\ java中,则应将当前目录更改为该目录,要更改目录,请在提示符下键入以下命令,然后按Enter键:

cd c:\java

提示符应更改为C:\ java>。如果在提示符下输入目录,则应该看到.java和.class文件。现在再次输入java HelloWorldApp。
如果仍然有问题,您可能需要更改CLASSPATH变量。要查看是否有必要,请尝试使用以下命令清除类路径。

set CLASSPATH=

现在再次输入java HelloWorldApp。如果程序现在工作,您将必须更改CLASSPATH变量。要设置此变量,请参阅JDK 8安装说明中的更新PATH变量部分。 CLASSPATH变量的设置方式相同。

Could not find or load main class HelloWorldApp.class

初学者程序员常犯的错误是尝试在编译器创建的.class文件上运行java启动器。例如,如果您尝试使用Java HelloWorldApp.class而不是java HelloWorldApp运行程序,则会收到此错误。记住,参数是要使用的类的名称,而不是文件名。

Exception in thread “main” java.lang.NoSuchMethodError: main

JVM要求您使用它执行的类具有开始执行应用程序的Main方法,上一章,我们详细讨论了main方法。

Applet or Java Web Start Application Is Blocked

如果您通过浏览器运行应用程序,并获得说应用程序被阻止的安全警告,请检查以下项目:

  1. 验证JAR文件清单中的属性是否正确设置为运行应用程序的环境。权限属性是必需的。在NetBeans项目中,您可以通过从NetBeans IDE的“文件”选项卡展开项目文件夹并双击manifest.mf来打开清单文件。
  2. 验证应用程序是否由有效的证书签名,并且证书位于Signer CA密钥库中。验证应用程序是否由有效的证书签名,并且证书位于Signer CA密钥库中。
  3. 如果您正在运行本地小程序,请设置一个用于测试的Web服务器。您也可以将应用程序添加到异常站点列表中,该列表在Java控制面板的“安全”选项卡中进行管理。
面向对象编程是一种编程范式,它将程序的构建和设计思路以面向对象的方式进行组织和实现。在Java中,面向对象编程是基于Java SE(Standard Edition)的一种编程方式。第07讲主要介绍了面向对象编程中的一些基本概念和关键术语。 在面向对象编程中,我们将程序中的数据和对数据的操作(方法)封装在一起,形成一个对象。对象由两部分构成:属性和方法。属性是用来描述对象的特征,而方法则是对象可以执行的操作。对象之间通过消息(方法调用)进行通信和交互。面向对象的核心思想是通过封装、继承和多态实现程序的复用和扩展。 封装是面向对象编程中的一个重要概念,它指的是将类的属性和方法进行封装,使得外部无法直接访问和修改对象的内部状态,只能通过公共的方法来操作属性和执行方法。封装提供了一种将数据和行为组合在一起的方式,可以保护数据的完整性和安全性。 继承是面向对象编程中的另一个重要概念,它指的是通过定义一个新的类来继承现有类的属性和方法。通过继承,子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改。继承提供了一种代码复用的机制,可以减少重复编码的工作量。 多态是面向对象编程的又一个重要概念,它指的是同一类型的对象在不同的情况下可以有不同的表现形式。多态通过方法的重写和方法的重载实现。方法的重写指的是在子类中重新定义和实现父类的方法,方法的重载指的是在同一个类中可以定义多个同名但参数列表不同的方法。 总结来说,面向对象编程是一种将程序组织和设计思路以对象为中心的编程方式。在JavaSE中,我们可以通过封装、继承和多态来实现面向对象编程的目标。封装可以提高程序的可维护性和可复用性,继承可以减少重复编码的工作量,多态可以灵活地操作对象。掌握这些基本概念和关键术语,可以帮助我们更好地理解和应用面向对象编程的思想。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值