`
御林无双
  • 浏览: 2726 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
文章分类
社区版块
存档分类

自学javase第一天HelloWord遇到困难

    博客分类:
  • java
阅读更多

今天对照视频学习了我人生中第一个java程序 hellow word

在我敲的过程中慢慢的背着敲出来了,出了几次错误都解决了(因为并不难- -)

但是最大的BOSS总是在最后。。。

自己写的代码

class HelloWord
{
 public static void main(String[] args)
 {
  System.out.println("师姐你好");
     }
}

 兴冲冲的去编译 ,文件名大小写已经没有问题了,学过一些C的我特别自信,还要准备学点别的呢。

可是,当我在我的CMD里敲完javac HelloWord.java潇洒的按了一下回车时 我傻眼了。。。

出现了

1 错误

E:\作品\java基础\Day01>javac HelloWord.java
HelloWord.java:1: 需要为 class、interface 或 enum
锘縫ublic class HelloWord{public static void main(String[] args){
^

...我当时各种试方法,看语法。。。无效果,内心在挣扎但是手还没有停,终于!

还是没成功。。。

哎 度娘吧,我求助了度娘 终于看到了答案,原来就算是最简单的程序也是有很多知识的

[javac] HelloWorld.java:1: 需要为 class、interface 或 enum
[javac] 锘缝ackage com.csdn.demo;
[javac] ^
[javac] 1 错误

这个错误出现的主要原因是java文件的编码问题。
在中文操作系统中,使用一贯的“javac HelloWorld.java”方式编译UTF-8(带BOM)编码的.java源文件,在没有指定编码参数(encoding)的情况下,默认是使用GBK编码。当编译器用GBK编码来编译UTF-8文件时,就会把UTF-8(带BOM)编码文件的文件头的占3个字节的头信息,按照GBK中汉字占两个字节、英文占1个字节的特性解码成了“乱码”的两个汉字。这个源文件应该是用记事本另存存为UTF-8编码造成的。

对于非GBK及其子集编码(GB2312)的正确的源文件,编译方式为“javac -encoding "UTF-8" HelloWord.java”,这样代码错误的指定代码里就不会出现乱码的中文。
但是依然会有错误,提示“HelloWorld.java:1: 非法字符: \65279。
这是因为.java对于UTF-8编码,只识别UTF-8(不带BOM)那种。而记事本只支持保存文件为带签名的UTF-8,那有没有办法解决呢?
当然是有的,那就是使用EmEditor、EditPlus、UltraEdit或Notepad++之类的工具另存为UTF(不带BOM)(区别于带UTF + BOM)的编码文件。这时候使用“javac -encoding "UTF-8" HelloWorld.java”,就没有上述编码问题了。

也许有人会说,“我干脆都用GBK不就行了吗,为什么还要用UTF-8呢?”

这是因为UTF-8支持世界多种语言的文字,被世界多数国家接受,是国际通用编码,也是Java推荐使用的编码。Java集成开发环境Eclipse中默认编码就是UTF-8。如果使用GBK,尤其是做网站,在非汉语国家,将无法正常浏览。在信息化时代,国际交往日益频繁;做软件和网站,不能只着眼当前,也要为日后维护做优化、降低维护成本。
引用自 pieryon大神的回答,十分感谢。
我对照了我的程序 发现我确实用了UTF-8带BOM版
改了之后解决了,很开心。。。
之后又遇到一个问题,就是我打的师姐你好乱码了。。。TAT。。。这个加油争取在明天解决。今晚睡个好觉哈哈。
晚安各位。
 
分享到:
评论

相关推荐

    javaSE第一天学习

    "javaSE第一天学习" 一、课程简介 JavaSE 第一天学习课程旨在为初学者提供了 Java 语言的基础知识,涵盖了 Java 语言的应用场景、Java 基础阶段知识结构、软件开发介绍、计算机编程语言介绍、Java 语言概述、Java ...

    JavaSE第二天笔记

    ### JavaSE第二天笔记知识点梳理 #### 一、Java 基础符号与注释 - **符号** - **大括号 `{}`**:用于界定代码块或类体的范围,例如方法体或类的成员变量及方法。 - **方括号 `[]`**:表示数组,如 `int[] arr;` ...

    javase 学习总结第三天

    javase 学习总结第三天

    javaSE自学入门基础

    【JavaSE自学入门基础】是针对想要学习Java编程语言的初学者所设计的一套全面教程。这个教程涵盖了从基础知识到进阶概念的多个方面,旨在帮助0基础的学习者建立起坚实的Java编程基础。 首先,让我们从Java开发环境...

    每日作业 - JavaSE第1天.md

    每日作业 - JavaSE第1天.md

    JavaSE第二天学习

    JavaSE第二天的学习主要关注程序流程控制结构,这是编程语言中非常基础且重要的概念。程序流程控制结构主要包括三种类型:顺序结构、选择结构和循环结构。 1. **顺序结构**是最简单的一种程序执行方式,它按照代码...

    JavaSE第三天笔记

    在JavaSE的第三天笔记中,我们深入探讨了多种关键的编程概念和技术,这些都是学习Java技术的基础。 首先,我们关注的是算术运算符,如加减乘除等,它们在数学表达式中用于计算。赋值运算符则用来将一个值赋给一个...

    JavaSE项目企业员工管理系统

    【JavaSE项目企业员工管理系统】是一个基于Java标准版(JavaSE)开发的系统,主要用于企业的员工数据管理和操作。这个系统已经实现了一些基础的功能,确保无误(无Bug),但同时也预留了扩展性,允许开发者根据实际...

    javase 第一周week1小结.md

    javase 第一周week1小结.md

    javase第一到第四章节

    "javase第一到第四章节"涵盖了Java的基础知识,包括Java的概述、开发环境的搭建、编写简单的Java程序以及基础的程序设计概念,如数组和方法。以下是这些章节的详细内容: **Java概述** Java是由Sun Microsystems...

    JavaSE项目一本糊涂账

    《JavaSE项目一本糊涂账》是how2j网站推出的一个实战项目,主要目的是帮助学习者深入理解和应用Java标准版(Java Standard Edition,简称JavaSE)技术。该项目通过连接MySQL数据库,提供了一个完整的运行示例,使得...

    JavaSE选择题第二套(含答案).doc

    "JavaSE选择题第二套(含答案).doc" 本文档主要介绍了JavaSE选择题第二套的相关知识点,涵盖了文件操作、目录操作、序列化和反序列化等方面的内容。 1. 获取文件父路径的方法 在Java中,可以使用File类的...

    黑马程序员Javase笔记

    "黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...

    三年JavaEE开发积累的那些代码之一:JavaSE篇完整实例源码

    三年JavaEE开发积累的那些代码之一:JavaSE篇 有什么? 1)自己写的例子:或是为了项目中应用写的demo,或是为了学习某项技术写的demo。 2)网上下载的例子:或改过或没改过,或完善过或原封没动。 没什么? 1)公司...

    JavaSE_JavaSE学习资料_

    JavaSE,全称为Java Standard Edition,是Java平台的核心部分,主要面向桌面应用和服务器端开发。这个编程资料包涵盖了JavaSE的学习资源,旨在帮助开发者掌握Java的基础知识、集合框架、IO流等关键概念。 首先,...

    javaSE自学文档

    这本"javaSE自学文档"旨在为初学者和有经验的程序员提供深入理解Java SE的资源。 在Java SE的学习中,首先会接触到的是基础语法,包括变量、数据类型、运算符、流程控制(如if语句、for循环、while循环)、方法定义...

    JavaSE第一阶段笔试题.docx

    1. **选择题第一题**:考察的是整型溢出。在Java中,整数的最大值是`Integer.MAX_VALUE`,如果超过这个值再进行加法操作,会从头开始计算,因此存在使 `i + 1 的情况。 2. **选择题第二题**:考察数据类型的精度。`...

    一、JavaSE概述.xmind

    一、JavaSE概述.xmind

    JavaSE基础入门视频教程33天之(24)

    JavaSE基础入门视频教程第24天主要涵盖了IO流对象的相关知识,这是Java编程中非常核心的一个部分。IO流在Java中用于处理数据的输入和输出,是程序与外部世界交换信息的重要工具。本教程通过一系列视频讲解了不同类型...

    JavaSE1.6参考文档

    JavaSE 1.6 参考文档 JavaSE 1.6 API

Global site tag (gtag.js) - Google Analytics