Rumah > Java > JavaAsas > 运行java程序提示找不到或无法加载主类

运行java程序提示找不到或无法加载主类

王林
Lepaskan: 2019-11-16 14:31:42
asal
3604 orang telah melayarinya

运行java程序提示找不到或无法加载主类

原因:

1.java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。

2.我们忽略了package的影响。

解决过程:

第一个问题好解决:

我们直接在CLASSPATH环境变量中加入“.;”即可。“.”的意思是搜索当前目录。

第二个问题看下面分析:

看下面两个类

b2d87f88c70f7d4988e816fef663cf5.png

类A和类B的唯一差别就是没有定义包名。

我们的工程路径是D:\HelloWorld,在HelloWorld文件夹中建立一个src文件夹,类B的源代码文件就放在src中。用javac编译完以后

会在src文件夹中生成NewsManager.class,如下:

aeacc590200e5d3a6d48ed26a0baae2.png

执行如下:

e972e6bb68b0a06c468120ee77cdbb2.png

把源代码换成类A:

8cf0a2d31c4210450ae16c42c9dafe7.png

为什么加入了package后就不对了呢?

类A中package的路径是org.will.app.main。按照java规定,我们应该按照package定义的路径来存放源文件,类A应该放入:

src\org\will\app\main下,如下:

1443f2890971c881f9f7471f9c5f153.png

然后我们编译执行:

89354674cc73daed4c68e352a1949b6.png

依然有问题,为什么,其实大家再回去看看java的书籍就会发现,一个类的全名应该是包名+类名。类A的全名:org.will.app.main.NewsManager

好的,再试试:

e56c8e710988c13780c3fc15b3924a8.png

还是不对。为什么?

仔细看上面的图,我们在main目录下让java命令去执行org.will.app.main.NewsManager,其实它会以为类的路径是:

D:\HelloWorld\src\org\will\app\main\org\will\app\main\NewsManager,大家看到了吧,路径重复了。

所以,我们应该这样执行:

115a5cc382fae2963f39ca330b25c23.png

成功!

推荐教程:Java教程

Atas ialah kandungan terperinci 运行java程序提示找不到或无法加载主类. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Bolehkah java digunakan sebagai bahagian belakang web?
daripada 1970-01-01 08:00:00
0
0
0
Pasang JAVA
daripada 1970-01-01 08:00:00
0
0
0
Tidak dapat memasang java
daripada 1970-01-01 08:00:00
0
0
0
Bagaimanakah php melaksanakan penyulitan sha1 java?
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan