java“找不到或无法加载主类”及编码错误问题

在Java编程中,遇到'找不到或无法加载主类'的问题通常是由于包的存在导致的。解决方法包括手动创建包的目录或将编译后的类文件移动到相应目录,或者通过命令行参数'-d . '自动创建。此外,cmd窗口显示乱码可能是因为编码不匹配,可以使用'java -encoding UTF-8'命令指定UTF-8编码来避免乱码。这样可以同时解决包和编码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先给出具体代码(当前目录为:D:\pro):

package org.test;
public class TestJava{
    public static void main(String args[]){
        System.out.println("Hello World!!!");
        System.out.println("你好,Java!!");
    }
}

1、 cmd 窗口运行时出现“找不到或无法加载主类”问题:

D:\pro>javac TestJava.java

D:\pro>java TestJava
错误: 找不到或无法加载主类 TestJava

出现这种问题的主要原因是程序中有package即包的存在。所以,我们有两种方法对包进行处理。
(1)手动新建包的目录:
如在当前目录下新建:(d:\pro)–>org–>test
然后把编译生成的TestJava.class文件移动到d:\pro\org\test目录下,
此时再运行java org.test.TestJava
就可以输出正确结果了。


D:\pro>javac TestJava.java

D:\pro>java org.test.TestJava
Hello World!!!
你好,Java!!

(2)自动创建包的目录:
运行代码:

 javac -d . TestJava.java
 java org.test.TestJava

(注意:”-d . “这个点的前面是有空格的,否则还是运行还是有问题的。)也能输出正确结果:


D:\pro>javac -d . TestJava.java

D:\pro>java org.test.TestJava
Hello World!!!
你好,Java!!

2、 cmd窗口运行时出现乱码问题:
因为我们的系统大多是中文系统,而不少编程软件都是英文编译环境,所以,当运行含有中文的代码时,容易出现乱码问题,这时候需要改变代码的编码就行了。


D:\pro>javac -d . TestJava.java
TestJava.java:4: 错误: 编码GBK的不可映射字符
 * @date Time: 2016?4鏈?22鏃ヤ笅鍗?3:07:49
                    ^
TestJava.java:4: 错误: 编码GBK的不可映射字符
 * @date Time: 2016?4鏈?22鏃ヤ笅鍗?3:07:49
                       ^
TestJava.java:4: 错误: 编码GBK的不可映射字符
 * @date Time: 2016?4鏈?22鏃ヤ笅鍗?3:07:49
                              ^
3 个错误

所以这个时候需要改变中文的gbk 编码为utf-8编码:
代码:java -encoding UTF-8 TestJava.java


D:\pro>javac -encoding UTF-8 -d . TestJava.java

D:\pro>java org.test.TestJava
Hello World!!!
你好,Java!!

从上面的代码也可以看出来,当程序既带有包,且还编码不对时,我们也可以一次性解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值