''错误: 找不到或无法加载主类......''
前言:最近学习Java。时常出现''错误: 找不到或无法加载主类......''等。
有时计算机出现的错误,很有“个性”。
我先叙述个人在运行Java的程序的一些个人情况。我是用notepad++,通过cmd来运行编译的。以此让大家更好的“对号入座”
出错原因总结:(一个一个排除)
一、我的运行过程
1.java程序运行需要在cmd环境下先使用“javac HelloWorld.java”命令对java文件进行编译
2.虚拟机编译会自动生成一个同名的以“.class”为后缀的类文件放在同一目录下
3.然后再执行“java HelloWorld”来运行。程序就能运行。(注意:此处运行“java”命令,java后只能跟文件名,不需要任何后缀,否则也会报错)该步骤详细内容,请见Java 2 (Java编程初始用)
二、系统环境变量
请正确配置环境变量,详细内容请见Java 0 (jdk下载安装及环境配置)
三、代码
排除以上两方面的问题,以及拼写错误,那问题基本就可以确定出在代码上面。
因为我用的是notepad++,所以就直接按照运行过程直接运行了。后来发现,出现这种错误的原因是“package helloworld;”而且几乎都是它造成的。
举例:
package com.heima.syn; class HelloWorld { public static void main(String[] args) { System.out.println("大家好"); } }
package com.heima.syn; public class Demo4_Ticket { /** * @param args * 火车站卖票的例子用实现Runnable接口 */ public static void main(String[] args) { MyTicket mt = new MyTicket(); new Thread(mt).start(); new Thread(mt).start(); new Thread(mt).start(); new Thread(mt).start(); /*Thread t1 = new Thread(mt); //多次启动一个线程是非法的 t1.start(); t1.start(); t1.start(); t1.start();*/ } } class MyTicket implements Runnable { private int tickets = 100; @Override public void run() { while(true) { synchronized(this) { if(tickets <= 0) { break; } try { Thread.sleep(10); //线程1睡,线程2睡,线程3睡,线程4睡 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "...这是第" + tickets-- + "号票"); } } } }
错误原因:这段代码,是Eclipse自动加上的这段代码。加上似乎是错的(但为什么错误还要加呢?),另外我用的是notepad++。(如果大家认为该错误原因解释的不好,请留言,愿与诸君共勉)
解决办法就是,将“package helloworld;”删去。再按照运行过程来一次就行了。