java编译通过,运行却提示找不到或无法加载主类的解决方案

简介: java编译通过,运行却提示找不到或无法加载主类的解决方案

一、问题描述

java(javac HelloWorld.java)编译通过,(java HelloWorld)运行却 提示找不到或无法加载主类 的一般多见过java初上手,使用命令行的方式运行java程序,一般使用IDE工具是不会遇见的。


二、分析和解决

既然javac编译已经通过,这说明变量 JAVA-HOME 已经配置的没有问题了。


第一种可能就是:问题就出在Path变量对应的变量值上或者是新建用户变量classpath上有问题,你重新配置一下。Path对应的变量值是在原来的变量值前面加上%Java_Home%;而classpath对应的变量值应该设为 .;(注意是英文字符)


第二种可能就是:你的环境变量都是正确的,只是你编译的java源文件中,主函数public static void main(String args[]){}没有写在main这个类中。一个java源文件可以写很多类,编译的时候javac源文件之后,每个类生成一个class文件。你去运行的时候,并不一定是java源文件名,而是去找java主函数所在的那个类名。


第三种可能就是: 你在写java源代码时加了包名,你把它删掉试试或使用javac编译的时候后面加上-d . 即:javac HelloWorld.java -d . 然就再运行的时候加上包名即可。



第四种可能就是: 当前用户权限不够,使用管理员权限运行cmd窗口再试试。也可以尝试在当前cmd 运行 SET CLASSPATH=. 即可设置解释的路径为当前路径,然后再运行java HelloWorld


最后的解决办法:先把原有的java环境变量全删除,按照 windows 10 配置Java 环境变量 重新配置java环境变量,并重启电脑再进行尝试。


需要注意的是:

再尝试完一种方法进行测试时,需要重新打开cmd窗口,不要一直开着cmd的界面反复进行测试,那样会一直按修改前的系统变量执行的。


目录
相关文章
|
8月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
571 7
|
IDE Java 编译器
Java:如何确定编译和运行时类路径是否一致
类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
741 5
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
292 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
285 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
存储 Java
java的各种加载和初始化的详细过程
一、什么时候加载和初始化 1、类什么时候加载 类的加载是通过类加载器(Classloader)完成的,它既可以是饿汉式[eagerly load](只要有其它类引用了它就加载)加载类,也可以是懒加载[lazy load](等到类初始化发生的时候才加载)。
2107 0
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
202 1
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
228 1
|
3月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
182 0
|
3月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
300 16