一个环境变量导致运行报错Exception in thread "main" java.lang.NoClassDefFoundError:

2023-11-08

昨天下午编译通过就一直报错Exception in thread "main" java.lang.NoClassDefFoundError:


早上终于调通了,加油

1 安装与配置

(1)在我的电脑C盘里安装了SDK ,路径是这样的:C:\Program Files\Java

         安装之后在Java这个文件夹里有两个文件夹jdk1.6.0_10和jre6

(2)设置环境变量

在classpath路径后面加入 :C:\Program Files\Java\jdk1.6.0_10\jre\lib\rt.jar;.;

在path路径后面加入:C:\Program Files\Java\jdk1.6.0_10\bin

(3)写java文件

在D盘下建立了一个叫Java的文件夹,存放一个名叫Hello.Java的文件

在dos下输入:Javac D:\java\hello.java 能通过编译

但在运行 输入:Java D:\java\hello 就不能运行了

2 提示错误

Exception in thread "main" java.lang.NoClassDefFoundError:D:\java\hello

3 解决方法

应该这样检查你的环境和你的操作: 
        (1)、你的文件名对吗?
      JAVA要求你的文件和你的类名严格对应的。比如 public class Hello{ .....
      那么文件名一定只能是Hello.java,看仔细了

(2)、你的程序中有main方法吗?参数什么的对吗?
        main方法的声明应该是这样子的:
        public static void main(String[] args)

(3)、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
        这是开始学JAVA时,常犯的错,java Hello.class,然后就报错。后来才弄明白,应该是java Hello。

(4)、环境变量检查
        点开始->运行-->cmd,输入JAVA或JAVAC 如果你看到关于JAVA的很多信息 就OK了!其实都提示到Exception in thread "main" java.lang.NoClassDefFoundError:D:\java\hello 了 可以肯定的说,不是编译环境的问题。

       (5)、查看你现在用的JDK版本和你编译文件的JDK是不是同一个版本的

        点开始->运行-->cmd,然后输入 javac -version看编译器的版本,输入java -version看执行时的版本,再看看你刚才执行文件版  本,看一不一样!

(6)、你在环境变量CLASSPATH上加上路径D:/java,你照样可以直接运行命令java Hello,或者临时运行时候查找路径可以这样写java -classpath D:/java Hello (其实前面应该是没有问题的,我就是通过这条做成功的)。

或者set classpath=D:/java (注意这样只是临时设置classpath,一旦你关闭命令提示符设置即可失效)

       java Hello

 

后来补充:

后来一想既然在环境变量中已经加入“.”(当前目录),为什么后面还非得再设置一次环境变量呢?难道原先的设置没有起作用?最后发现为题出在classpath和path的设置上。

原先的设置是:

“在classpath路径后面加入 :C:\Program Files\Java\jdk1.6.0_10\jre\lib\rt.jar;.;

在path路径后面加入:C:\Program Files\Java\jdk1.6.0_10\bin”

 

应该是这个样子:classpath中把“.”放在最前面,即:.;C:\Program Files\Java\jdk1.6.0_10\jre\lib\rt.jar;

                            在path路径的最前面加入:C:\Program Files\Java\jdk1.6.0_10\bin

 

原因:当你输入某个命令时,系统会在classpath,path中从前往后进行查找,一旦找到就不再继续往下查找。所以你在后面设置的路径,一旦在前面找到了根本就不会跑的你预想的路径下。


========》 我是通过set classpath来解决的


JAVA第一个问题搞定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个环境变量导致运行报错Exception in thread "main" java.lang.NoClassDefFoundError: 的相关文章

随机推荐

  • 网络图库Cytoscape.js的使用(二):图表常用操作

    文章目录 图形实例与集合 选择器 常用函数 获取指定元素 集合 视口常用操作 数据 全局常用方法 元素常用数据 操作方法 修改元素样式常用方法 迭代 构建 过滤常用方法 图形实例与集合 为了使用Cytoscape js 架构中有两个部分是程
  • Git安装教程

    文章目录 Git安装教程 一 Git安装与下载 二 Git 的功能介绍 三 测试Git是否安装成功 Git安装教程 一 Git安装与下载 浏览器搜索Git官方下载或https git scm com downloads 官网可能下载慢 阿里
  • Spring Cloud是什么?

    Spring Cloud 是一款基于 Spring Boot 实现的微服务框架 Spring Cloud 源自 Spring 社区 主要由 Pivotal 和 Netflix 两大公司提供技术迭代和维护 随着微服务的火爆流行 国内外各大互联
  • nacos-一致性协议(1)

    Nacos支持CP AP模式 即Nacos可以根据配置识别为CP模式或AP模式 默认是AP模式 如果注册Nacos的client节点注册时ephemeral true 那么Nacos集群对这个client节点的效果就是AP 采用distro
  • curl,libssh2,openssl,zlib的编译

    前年 客户要求ATM客户端程序添加sftp功能 领导发给我4个静态库 分别是libcurl lib libeay32 lib ssleay32 lib libssh2 lib 使用这4个库成功实现了sftp功能 当时从网络上查到该四个静态库
  • 层序遍历与BFS广度(宽度)遍历搜索算法(C++)

    算法竞赛 file author jUicE g2R qq 3406291309 彬 bin 必应 一个某双流一大学通信与信息专业大二在读 brief 一直在算法竞赛学习的路上 copyright 2023 8 COPYRIGHT 原创技术
  • 训练集和测试集 — 模型评估

    模型评估 训练集和测试集 训练集就是训练模型的样本 测试集就是在我们训练好一个模型后 需要去评价这个模型的好坏 最直接的方法就是拿着这个模型去做实际的判断 例如 垃圾邮件过滤 就看看能否把垃圾邮件都筛选出来 如果没有识别出垃圾邮件 或者把正
  • 我和ChatGPT聊了聊个人知识管理

    话说 昨天我终于申请了一个ChatGPT的账号 完之后 就玩儿嗨了嘛 问东问西地 简直停不下来 不过除了闲聊之外 还是想借助ChatGPT的帮忙完成一些具体的任务 于是我就和它聊了聊个人知识管理 文章比较长 主要包括这样一些内容 什么是个人
  • MATLAB中数组的运算和操作学习笔记

    1 数组的代数运算 1 1 数组与标量的运算 数组的 乘方运算 gt gt A 1 2 3 4 5 6 A 1 2 3 4 5 6 gt gt A 2 ans 1 0 1 2 3 4 gt gt A 2 ans 2 4
  • 中达优控触摸屏编程视频教程_中达优控触摸屏编程软件下载

    YKBuilder也就是中达优控触摸屏编程软件 是中达优控YKHMI系列人机界面的集成开发环境 它可以帮助开发适合自己工程使用的组态 从而减少开发自动化项目的时间 缩短系统升级和维护的时间 并可以与第三方应用程序无缝集成 增强生产力 在自动
  • uni-app @tap 失效

    item menu 自定义组件
  • 英语学渣如何看懂全英文的芯片数据手册

    英语学渣如何看懂全英文的芯片数据手册 一 数据手册的重要性 我们在做项目的时候常常会用到一些我们以前没接触过的芯片 这个时候我们就需要看芯片的数据手册 而我们接触到的芯片百分之九十以上都是国外的 剩下那百分之十的国产芯片也有可能是用英文写的
  • activiti自定义代理人、候选人、候选组选择

    介绍 AdminEAP框架中集成了Activiti工作流组件 使用了activiti explorer中的在线流程设计器 其中在选择代理人 审批人 中 原生的操作是输入数据 没有和系统自动关联 同时 原生的在线流程设计器使用AngularJ
  • 教你如何完美卸载Ubuntu双系统

    如何完美卸载Ubuntu双系统 一 前言 二 系统环境和DiskGenius软件下载 1 系统环境 2 DiskGenius软件下载 三 把开机启动项设为默认Windows启动 四 删除Ubuntu系统分区 1 查看电脑磁盘的情况 3种方法
  • JavaScript 中 undefined 与 undeclared 之间的区别?

    认为这个根本的区别在于 undefined是Js语言类型 而undeclared却是一种Js语法错误吧 解答第一部分 在Js中 有两个表示 空 的值undefined和null 其中比较有用的是 undefined undefined 是一
  • spring boot报FileSizeLimitExceededException异常的解决方法

    开发spring boot程序时 遇到了如下错误 The field file exceeds its maximum permitted size of 1048576 bytes 原因 Spring Boot工程嵌入的tomcat限制了
  • 探索Java8——测试Lambda表达式

    文章目录 测试Lambda表达式 测试可见Lambda行为 测试使用Lambda的方法的行为 调试 测试Lambda表达式 通常而言 好的软件工程实践一定少不了单元测试 借此保证程序的行为与预期一致 你编写测试用例 通过这些测试用例确保你代
  • FISCO BCOS(二十九)———区块链浏览器

    一 浏览器主要用途 区块链浏览器将区块链中的数据可视化 并进行实时展示 方便用户以Web页面的方式 获取当前区块链中的信息 二 一键部署 2 1 环境要求 环境 版本 Java JDK8或以上版本 MySQL MySQL 5 6或以上版本
  • UE4-VaRest客户端上传玩家得分并获取排行榜

    排行榜相关 1 上传得分 2 获取玩家排名 3 获取排行榜 1 上传得分 2 获取玩家排名 3 获取排行榜
  • 一个环境变量导致运行报错Exception in thread "main" java.lang.NoClassDefFoundError:

    昨天下午编译通过就一直报错Exception in thread main java lang NoClassDefFoundError 早上终于调通了 加油 1 安装与配置 1 在我的电脑C盘里安装了SDK 路径是这样的 C Progra