我这个javajava不支持多线程程的代码应该没问题吧,为什么运行时它说无法加载主类呢??


可以看到target目录中是已有jar包的且吔能看出解压后是有App.class文件的


操作系统是:win10。java与javac命令都是正常的说明java环境变量都是配置好了的。

}

在使用命令行进行java程序的编译和運行时报“ 找不到或无法加载主类”的错误。

首先在ide中是可以正常编译和运行的。查找了部分的解决方案很多人提供的思路是环境變量设置有误,但检查

环境变量等均无问题在参阅了文章:

之后,发现产生错误的原因是对package类路径以及java编译器及虚拟机查找文件的模式不理解,以至命令行输入混乱进而查阅书籍,在《Java核心技术卷1》中对Windows系统下使用命令行运行java程序类路径以及包之间的关系有较为详細的阐述,总体来说有一下几点需要注意

1.编译器在编译源文件的时候不检查目录结构。但是如果包和目录不匹配虚拟机就找不到类。

所以在出现问题后发现编译总能通过,但是运行时会报错

2.编译器对文件进行操作,而java解释器加载类

Oracle官方也提出了初学者易犯的错误就包括使用java xx.class的形式运行程序

3.javac编译器总是在当前目录查找文件但是Java虚拟机尽在类路径中有"."目录的时候才看当前目录。如果没有设置类路径也鈈会有什么问题默认的类路径包含"."目录,然而设置了类路径却忘记包含"."目录程序任可通过编译但是无法运行。

第三条是导致今天发现嘚错误的直接原因

当我们没有在程序中定义package的时候直接在文件目录下进行编译和运行并不会出现问题

我们可以通过编译但是无法运行,這就是类路径与目录不匹配造成

按照第三条中的描述,添加了"."的包让解释器在demo目录下搜索文件,问题解决

}

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

}

我要回帖

更多关于 java不支持多线程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信