【Java初学】找不到main(String[])方法,配置问题,中文乱码

一、main(String[])方法找不到报错
这是一段根据学习JAVA从入门到精通的书本实例代码,编写的入门demo。但是运行.java程序时,出现下图错误——“错误:在类Person中找不到main(String[])方法”

class Person{
	private String name;
	private int age;
	public Person(){}
	public Person(String n,int a){
		name = n;
		age = a;
		System.out.println("public Person(String n,int a)");
	}
	public String talk(){
		return "我的名字是" + name + ",年龄是" + age + "岁";
	}
}
public class Hello
{
	public static void main(String args[])
	{
		Person p = new Person();
		System.out.println(p.talk());
		Person p2 = new Person("June",23);
		System.out.println(p2.talk());
	}
}

如下图
有main方法但没找到
翻阅书本,实例代码中都没有要求把主类放到文件开头,网上Eclipse编辑器实例也没要求。但是经过测试,本人是使用Notepad++进行编辑的。把主类放到文件最前面就能正常使用。如下:


public class Hello
{
	public static void main(String args[])
	{
		Person p = new Person();
		System.out.println(p.talk());
		Person p2 = new Person("June",23);
		System.out.println(p2.talk());
	}
}
class Person{
	private String name;
	private int age;
	public Person(){}
	public Person(String n,int a){
		name = n;
		age = a;
		System.out.println("public Person(String n,int a)");
	}
	public String talk(){
		return "我的名字是" + name + ",年龄是" + age + "岁";
	}
}

调试正常:(Notepad++编辑和cmd运行)
【Java初学】找不到main(String[])方法,配置问题,中文乱码_第1张图片
本人对此存在疑惑,不过还在初学JAVA,希望能给初学者一些帮助。

二、 环境配置问题
网上教程给JAVA_HOME配置“D:\jdk8”,CLASS_PATH配置“%JAVA_HOME%\lib;.;”,给PATH配置“%JAVA_HOME%\bin;”。本人的配置是Windows 10专业版,这么配置会出现java -version检测不到java内部指令。即使用户变量和系统变量都配置了以上。

解决办法: %JAVA_HOME%部分不用常量,直接把D:\jdk8替换掉%JAVA_HOME%,就可以了。可能使部分系统常量替换不了?

三、中文乱码
默认创建JAVA编写文件,是GBK编码,而以往编程经验,我保存为UTF-8编码,结果中文都会出错乱码。
UTF-8编码
【Java初学】找不到main(String[])方法,配置问题,中文乱码_第2张图片
默认编码
【Java初学】找不到main(String[])方法,配置问题,中文乱码_第3张图片

解决方法:
保存时,若使用Notepad++,可通过设置 编码=》使用ANSI编码,之后cmd编译时直接使用javac **.java 即可。
若使用文本编辑器,则在另存为时 保存为 .java文件,下方有编码选择,使用ANSI编码,再确定保存。编译时仍直接javac **.java 即可。

若真需要使用UTF-8,在保存时需对应保存为UTF-8编码,再使用javac -encoding UTF-8 *.java进行编译,再java *.java运行即可。但这样中文会乱码。

你可能感兴趣的:(Java)