java命令运行class文件提示“错误:找不到或无法加载主类“

2024-03-04 17:59

本文主要是介绍java命令运行class文件提示“错误:找不到或无法加载主类“,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CLASSPATH 配置  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

一句话 不写包名就是直接 编译文件然后执行
#不写包名 编辑器会报错 但是不影响编译和执行   -encoding 指定编码
javac Test.java
javac -encoding  UTF-8 Test.java
java Test
写了包名就必须先编译文件 然后在包的最外层如src带着包名点文件名执行
# 例如 java文件目录为  D:\DEV\src\Test\com\by\lc\Test.java
# 编译的class文件为     D:\DEV\Test\src\com\by\lc\Test.class
# 那么执行文件需要在   D:\DEV\Test\src 目录下 
java com.by.lc.Test#  -d .    选项 会在当前目录生成包含包名的class文件  
#  也就是会生成下层目录 如 com/by.lc/Test.class, 调用的时候使用包名 点文件名
javac  -d . Test.java
java  com.by.lc.Test# 在out目录生成class文件 必须是存在的文件夹
# 运行时也要指定路径  
mkdir out
javac -d ./out ./*.java
java -cp ./out com.by.lc.Test# 引入jar包的情况 . 表示搜索当前目录下   写了引包再写 ./out 执行 会找不到包
# 可以将 out 连接到引包的 后面  应该是class文件被 . 扫描和引入了# windows 多个文件  引入jar包  生成文件夹
# *.java 可以是多目录  如 ./test1 ./test2 
javac -cp .;DmJdbcDriver18.jar;commons-io-2.5.jar -d ./out  -encoding UTF-8 *.java && java -cp .;DmJdbcDriver18.jar;commons-io-2.5.jar;out com.by.lc.URLToFile# Linux 多个文件  引入jar包  生成文件夹 
javac -cp .:DmJdbcDriver18.jar:commons-io-2.5.jar -d ./out  -encoding UTF-8 *.java && java -cp .:DmJdbcDriver18.jar:commons-io-2.5.jar:out com.by.lc.URLToFile

如果需要依赖jar的话,需要按照如下格式 编译和执行都需要引入jar

windows下,对于需要依赖的jar包使用-cp ,多个jar包之间使用分号;java命令运行时注意.;
#删除包名只是显示错误 不影响编译和执行 所以可以删掉  在同一目录运行
#jar 与java文件在同一目录可以省略前面路径  方便复制使用
javac -cp .;DmJdbcDriver18.jar;httpclient.jar -encoding UTF-8 DownloadFile.java  &&  java -cp  .;DmJdbcDriver18.jar;httpclient.jar  DownloadFile
Linux下,对于需要依赖的jar包使用-cp ,多个jar包之间使用冒号:java命令运行时注意.:
javac -cp .:DmJdbcDriver18.jar:httpclient.jar -encoding UTF-8 DownloadFile.java  &&  java -cp  .:DmJdbcDriver18.jar:httpclient.jar  DownloadFile

上面看完了没,别看了 那都没用 下面这个一把梭了 

目录结构如下  

Test2
├── libs
│   ├── DmJdbcDriver18.jar
│   ├── commons-io-2.5.jar
│   └── sunjce_provider.jar
├── src
│   ├── TxtToMap.java
│   └── URLToFile.java
└── setting.txt

就看这一行就够了

可以指定jar目录 java文件目录 但是不要再指定输出目录了 就生成在当前目录

结构和包名一致  所以直接 java命令调用【包名.类名】

javac -encoding UTF-8  -Djava.ext.dirs=./libs -d .    ./src/*.java &&  java -Djava.ext.dirs=./libs   com.by.lc.URLToFile
Test2
├── com
│   └── by
│       └── lc
│           ├── TxtToMap.class
│           └── URLToFile.class
├── libs
│   ├── DmJdbcDriver18.jar
│   ├── commons-io-2.5.jar
│   └── sunjce_provider.jar
├── src
│   ├── TxtToMap.java
│   └── URLToFile.java
├── log.txt
└── setting.txt

结果如下    全白折腾了  不区分Linux和Windows 已测试


javac 编译引用外部指定jar包进行编译和执行编译后的class文件

这篇关于java命令运行class文件提示“错误:找不到或无法加载主类“的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773989

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd