`

JAVA基础:从简单程序看java运行错误

阅读更多

问HelloWorld问题的人实在是太多了,而且经常都以“问一个最简单的问题”开头。其实回想一下,自己也是从这个阶段过来的,说一句“你好”,真的是一个最简单的问题吗?
首先,我们要假设一下我们的平台是Windows JDK(Linux环境下也差不多)。这个环境是相当普遍、基础和入门的。确定已经正确安装JDK了,下一步是小心翼翼地敲入某本教程上的HelloWorld源码,存盘,然后编译,javac ...问题来了:

* 错误1: 软件开发网

'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。
(javac: Command not found)

产生的原因是没有设置好环境变量path。
Win98下在autoexce.bat中加入path=%path%;c:\jdk1.2\bin
Win2000下则控制面板->系统->高级->环境变量->系统变量...看到了?双击Path,在后面加上c:\jdk1.2\bin。
当然我们假设JDK安装在了c:\jdk1.2目录下
好,再试试!javac HelloWorld 软件开发网

* 错误2:

HelloWorld is an invalid option or argument.

拜托,给点专业精神,java的源程序是一定要存成.java文件的,而且编译时要写全.java呀。
OK,javac HelloWorld.java (这回总该成了吧?)

* 错误3:

HelloWorld.java:1: Public class helloworld must be defined in a file called
"HelloWorld.java".public class helloworld{

这个问题嘛,是因为你的类的名字与文件的名字不一致。(谁说的,明明看到人家都有这样写的)OK,准确地说,一个Java源程序中可以定义多个类,但是,具有public属性的类只能有一个,而且要与文件名相一致。还有,main方法一定要放在这个public的类之中,这样才能java(运行)这个类。另外一点是Java语言里面是严格区分大小写的,初学者要注意呀。像上例中 helloworld 与 HelloWorld 就认为是不一样,因而...
oh... 好,改好了,嘻嘻... http://www.mscto.com

javac HelloWorld.java
...(咦,怎么什么也没有呀?)//faint 这就是编译通过了!看看是不是多了一个HelloWorld.class?
按书上教的 java HelloWorld(不是java HelloWorld.class哟,因为在j2ee规范中java指令中的“.”是指路径的意思,如果是java HelloWorld.class 那么系统就会查找HelloWorld目录下的class.class文件,这样当然是不可能存在的)。

* 错误4: http://www.mscto.com

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

呵呵,这个嘛,就是著名的类路径(classpath)问题啦。实际上,类路径是在编译过程就涉及的Java中的概念。classpath就是指明去哪里找用到的类,就这么简单。由于我们的HelloWorld没用到其它的(非java.lang包中的)类,所以编译时没遇到这个问题。运行时呢,就要指明你的类在哪里了。解决方法嘛,可以用下面的命令运行:

java -classpath . HelloWorld
“.”就代表当前目录。当然这样做有点麻烦(是“太麻烦”!),我们可以在环境变量中设置默认的classpath。方法就照上述设置path那样。将classpath设为:classpath=.;c:\jdk1.2\lib\dt.jar;c:\jdk1.2\lib\tools.jar 后面的两个建议也设上,以后开发用的着。 软件开发网

java -classpath . HelloWorld(再不出来我就不学java了)

软件开发网

* 错误5: http://www.mscto.com

Exception in thread "main" java.lang.NoSuchMethodError: main

(//咣当)别,坚持住。看看你的代码,问题出在main方法的定义上,写对地方了吗,是这样写的吗:

public static void main(String args[]) { // 一个字都不要差,先别问为什么了...对,包括大小写!

java -classpath . HelloWorld (听天由命了!)
Hello World! http://www.mscto.com

(faint!终于...)

欢迎来到Java世界!所以说,无法运行HelloWorld 真的并不是一个“最简单的问题”。

附:HelloWorld.java
// HelloWorld.java
public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

分享到:
评论

相关推荐

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-029-Java语言概述-第一个程序-Java程序的执行流程.avi 北京动力节点-Java编程零基础教程-030-Java语言概述-重难点总结.avi 北京动力节点-Java编程零基础教程-031-Java基本语法-...

    corejava基础重要知识点总结

    JRE = java runtime environment = java运行环境 组成关系: JVM = 类加载器 + 字节码校验器 + 解释执行器 JRE = JVM + API(应用程序变成接口); JDK = JRE + BIN(常用的工具命令) 面试题: JDK和JRE之间的...

    Java网络五子棋chessClient.java:客户端主程序。chessInterface.java:客户端的界面。

    chessClient.java:客户端主程序。 chessInterface.java:客户端的界面。 chessPad.java:棋盘的绘制。 chessServer.java:服务器端。 可同时容纳50个人同时在线下棋,聊天。 没有加上详细注释,不过绝对可以运行,...

    java程序设计阅读程序写结果题22道

    《java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关任课教师出卷使用。 内容示例为: 9. 阅读下列程序片段,写出运行结果。 public class Test { public static void main...

    Java 编译 运行 一键 批处理

    Java 自动编译运行 批处理程序 以下是自制的Java自动编译+运行批处理程序,...[a] 如果发生编译或运行错误则自动打开记事本以方便修改 请注意,参数[a]必须放在参数列表的最后 更多请见 http://blog.csdn.net/nista

    JAVA初学小程序

    运行javac命令后,如果成功编译没有错误的话,会出现一个 HelloWorld.class 的文件。 java 后面跟着的是java文件中的类名,例如 HelloWorld 就是类名,如: java HelloWorld。 注意:java命令后面不要加.class。

    java基础语法选择题

    java基础语法选择题,付...在Java中,程序调试是解决程序错误的工具和方法的总称,主要方法包括三个方面,其中不包括(A)。(选择一项)a)使用System.out.println()输出语句验证变量值b)设置断点c)单步运行d)观察变量

    Java算法:车牌识别.zip

    它的设计目标是“一次编写,到处运行(Write Once, Run Anywhere)”,这意味着开发者可以使用Java编写应用程序,并在支持Java的任何平台上无需重新编译即可运行,这得益于其独特的跨平台性,通过Java虚拟机(JVM)...

    01-JavaSE-JAVA运行原理.ppt

    Java是由Sun公司推出的Java程序设计语言和Java软件开发平台的总称。有一个庞大的库,库中包含很多可重用的代码和提供安全性、可移植性以及可自动垃圾回收等服务的执行环境。 JAVA特点: 简单性:摒弃了C++中易...

    IDEA解决Java:程序包xxxx不存在的问题

    有时候我们在导入程序之后,系统会给出错误提示:Java:程序包xxxx不存在,现在我这里有一招,就是使用IDEA自动导入Java程序包,这也是IDEA的一大优点。 内容 当出现如题所示的错误时候,不用着急,这是因为配置Java...

    Java核心技术 卷Ⅰ:基础知识 【中文】(第八版)

    然后,通过编译和运行三个典 型的Java程序(一个控制台应用、一个图形应用、一个applet),指导读者使用简易的JDK、可 启用Java的文本编辑器以及一个Java IDE。 第3章开始讨论Java 语言。这一章涉及的基础知识有变量...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    JAVA语言程序设计课程教学大纲.doc

    (3)在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误 的能力。 (4)通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语 言支持系统相互关系的了解。 三、实践内容 ...

    java基础入门教程

    微 软 总 裁 比 尔 ·盖 茨 在 悄 悄 地 观 察了 一 段 时 间 后 ,不 无感 慨 地 说 :"Java是 长 时 间 以 来 最 卓 越 的 程序 设 计 语 言 ",并确 定 微软 整 个 软 件 开 发 的 战 略 从 PC 单 机 时 代 向 着 以...

    slf4j-1.7.rar

    1.如果运行程序出现错误:“Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory”,这是因为项目缺少slf4j-api.jar和slf4j-log4j12.jar这两个jar包导致的错误。 2.如果运行程序...

    java程序设计 游戏程序源码 论文

    java程序设计 游戏程序源码 论文 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端: 1. 传统手机...

    java源码包2

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    java语言与面向对象程序设计形考1-0001.docx

    java语言与面向对象程序设计形考1-0001 java语言与面向对象程序设计形考1-0001全文共12页,当前为第1页。java语言与面向对象程序设计形考1-0001全文共12页,当前为第1页。java语言与面向对象程序设计形考1-0001 java...

Global site tag (gtag.js) - Google Analytics