`

HelloWorld 攻略

阅读更多

         问HelloWorld问题的人实在是太多了,而且经常都以“问一个最简单的问题”开头。其实回想一下,自己也是从这个阶段过来的,说一句“你好”,真的是一个最简单的问题吗?...//think 好了,言归正传,let's say "HelloWorld!" in java...


         首先,我们要假设一下我们的平台是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... 好,改好了,嘻嘻... javac HelloWorld.java...(咦,怎么什么也没有?)//faint 这就是编译通过了!看看是不是多了一个HelloWorld.class ?(hehe..按书上教的:)                                 java HelloWorld (!! 这个我知道,不是java HelloWorld.class哟)


* 错误4:
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:
Exception in thread "main" java.lang.NoSuchMethodError: main
(//咣当)别,坚持住。看看你的代码,问题出在main方法的定义上,写对地方了吗,是这样写的吗:
public static void main(String args[]) { //一个字都不要差,先别问为什么了...对,包括大小写!
java -classpath . HelloWorld (听天由命了!)
Hello World!
(faint!终于...)


          欢迎来到Java世界!所以说,无法运行HelloWorld 真的并不是一个“最简单的问题”。
附:HelloWorld.java
// HelloWorld.java
public class HelloWorld {
       public static void main(String args[]) {
           System.out.println("Hello World!") ;
       }
}

--

※ 修改:・muslov 於 Jan 18 19:27:35 修改本文・[FROM: 166.111.68.91]
※ 来源:・BBS 水木清华站 smth.org・[FROM: 166.111.68.91]

分享到:
评论

相关推荐

    Java Hello World攻略

    以Hello World程序为例,介绍Java编译开发环境。例子短小精悍,让你快速掌握Java编程环境。当没有IDE时您也能轻松应对Java开发。学习Java必备知识!

    java版HelloWorld攻略

    水木bbs上看到的一个好东西,各种问题介绍的十分详细。Hello World也不是一个简单的东西

    天池 Docker 练习场比赛详细攻略+代码

    文章目录1. 比赛内容2. 编写代码3. 构建镜像并推送 本文将详细讲述天池 Docker 练习场的比赛流程,并贴出代码以供参考 1. 比赛内容 题目: ...输出 Hello world 就是将 "Hello world" 直接写入 resul

    C 语言文件处理全攻略:创建、写入、追加操作解析.pdf

    因此,当我们在计算机上打开文件时,它显示 “Hello World!” 而不是 “Some text” 将内容追加到文件 如果您想在不删除旧内容的情况下将内容添加到文件,可以使用 a 模式。 a 模式将内容追加到文件末尾: FILE ...

    android开发环境搭建攻略

    android开发环境搭建攻略,包括JDK、eclipse、ADT等的安装流程与常见问题,以及hello world的执行过程,适合零基础。

    stm32f开发攻略.rar

    就如同软件工程师第一个程序永远是“Hello World”一样,电子工程师第一个实验是点 亮你的 LED。当然,内容绝不仅仅是点亮个小灯那么简单,而是要通过一个最简单 的入门实验,让读者充分了解 STM32 开发的基本流程.

    twistLantern:扭曲灯笼节点应用程序

    扭灯笼 扭灯笼 URL查询示例 响应数据 {res: "success"} ? 用= 分割下面的文本,并按顺序发送第二个文本 ? 数据 = helloworld-> helloworld

    IDA.Pro代码破解揭秘part1

    9.9.1 Hello World插件 191 9.9.2 find memcpy插件 194 9.10 间接调用插件 209 9.10.1 收集数据 210 9.10.2 用户接口 211 9.10.3 实现回调 213 9.10.4 显示结果 215 9.11 插件开发和调试策略 250 9.11.1 ...

    VSCode插件开发全攻略之命令、菜单、快捷键

    命令 我们在前面HelloWord章节中已经提到了命令写法,这里再重温一下。 context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => { ... "title": "Hello World" }, ] vsc

    MingW VC 之.a .lib .dll .def 关系

    char str[]="Hello world!"; printhello(str); return 0; } 2. mylib.cpp #include #include #include "mylib.h" using namespace std; void EXPORT printhello(char *str) { cout ; } 3. mylib.h #define...

    游戏编程指南.CHM

    《游戏编程指南》 [涉及平台] VC++ [作者] void [文件大小] 1761KB [更新日期] 2005-10-26 本代码来自CZVC编程网: HTTP://WWW.CZVC.COM

Global site tag (gtag.js) - Google Analytics