“找不到或无法加载主类”该问题出现的一个可能原因

今天按照教材上的程序,编译运行时,程序编译没有问题,但是运行时,出现“找不到或无法加载主类”的提示。

遂网上四处找答案,说什么:

1、拼写错误

2、环境变量配置时classpath和path前面未加“.;”



下面是我的程序。

package myFrame
import java.awt.*;
import javax.swing.*;

 class  SimpleFrameTest
{
	public static void main(String[] args) 
	{
		EventQueue.invokeLater(new Runnable()
		{
			public void run(){
				SimpleFrame frame = new SimpleFrame();
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame.setLocationByPlatform(true);
				frame.setVisible(true);
			}
		});
	}
}

class SimpleFrame extends JFrame
{
	private static final int DEFAULT_WIDTH = 300;
	private static final int DEFAULT_HEIGHT = 200;

	public SimpleFrame(){
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
	}
}

网上找到答案,检查拼写,检查环境变量配置情况,都没错,但是运行时,还是出现那个提示。


后来,我在存放代码的那个文件夹中,发现没有新建myFrame文件夹,遂把上述程序第一行删除掉。结果程序能运行了。

虽然这样把问题解决了,但是并不知道原因。如果有人知道的话请多多指教。

```markdown 当运行 Java 程序时出现“不到无法加载”错误,通常是由于以下原因之一导致的。请按顺序检查: ### 1. **确保文件名与名一致** - 每个 `.java` 文件必须以公共(`public class`)的名字命名。 - `PolymorphicTest.java` 文件中包含 `public class PolymorphicTest`,所以文件名必须是: ``` PolymorphicTest.java ``` ### 2. **确认编译了所有** 你需要将四个分别保存为独立的 `.java` 文件,并全部编译。 ✅ 正确的文件结构应为: ``` ./PolymorphicTest.java ./Shape.java ./Circle.java ./Rectangle.java ``` 然后在终端中执行: ```bash javac *.java ``` 这会生成: ``` Shape.class Circle.class Rectangle.class PolymorphicTest.class ``` ⚠️ 如果只编译 `PolymorphicTest.java`,其他依赖未编译,就会报错。 ### 3. **正确运行** 编译成功后,运行命令应为: ```bash java PolymorphicTest ``` 📌 注意:不要加 `.class` 后缀! ### 4. **检查当前工作目录** 你必须在存放这些 `.java` 文件的目录下执行命令。例如: ```bash cd /your/project/path javac *.java java PolymorphicTest ``` ### 5. **避免使用包声明(Package)** 如果你在代码中添加了 `package xxx;`,但没有对应目录结构,也会导致不到。 🔍 检查所有代码开头是否都没有似: ```java package com.example; ``` 如果有,请删除,者按照包路径组织目录并调整运行方式。 --- ✅ 总结解决步骤: 1. 四个分别保存为同名 `.java` 文件; 2. 所有文件放在同一目录; 3. 终端进入该目录; 4. 执行 `javac *.java` 编译; 5. 执行 `java PolymorphicTest` 运行。 ✔️ 此时程序应正常输出图形信息,不再报“不到无法加载”。 如有更多错误信息(如具体异常堆栈),可提供进一步诊断。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值