运行jar包时,在命令行中指定依赖的jar包和主类
在一次实验过程中,使用maven打包java项目为jar包,打出来的myexp.jar包只有7KB(我的实验项目正常打出来的包不小于60MB)。这时,运行java -jar myexp.jar报错“没有主类清单”,解压jar包发现MANIFEST.MF文件中确实没有Main-Class配置。这时回过头,才发现项目中pom.xml指定主类配置下的skip不小心设置为了true,如下图:
原本把skip改为false,重新打包事情就结束了。但是博主转念一想,java在命令行下可以通过-cp或-classpath参数指定类所在位置,那么是否可以指定主类路径运行。这时博主尝试运行:
java -cp * com.nacos.springboot.SpringbootApplication
发现报错:NoClassDefFoundError。这是因为myexp.jar也依赖了其它的jar包,所以博主使用maven将所有的依赖包全部拉到本地(方法详见:使用Maven命令行下载依赖库):
call mvn -f pom.xml dependency:copy-dependencies
这时你会发现在项目下的target文件夹中多了一个dependency文件夹,这个文件夹中就是整个项目所有的依赖jar包,如下图:
将myexp.jar放到dependency文件夹中,在这个文件夹下运行:java -cp * com.nacos.springboot.SpringbootApplication ,这时发现项目运行起来了: )
运行jar包时,在命令行中指定依赖的jar包和主类的更多相关文章
- pycharm中可以运行的程序,在命令行中运行提示模块不存在的问题
运行模块(包含main函数的模块),在模块开头添加以下代码,原因是pycharm运行python脚本时,会自动添加以下代码,将当前库加入到系统库目录集合中,在命令行中运行需要手动添加import os ...
- PostgreSQL 登录时在命令行中输入密码
有时候需要设置定时任务直接执行 sql 语句,但是 postgresql 默认需要人工输入密码,以下命令可以直接在命令行中直接填入密码 PGPASSWORD=pass1234 psql -U MyUs ...
- java命令行执行程序解决依赖外部jar包的问题
用java命令行直接执行程序,如果这个程序需要引用外部jar包.就不能单纯用java xx来执行 如果你的jar包和程序就在一个目录: 编译 javac -cp D:\yy\yy.jar,D\xx\x ...
- IntelliJ IDEA 运行java程序时出现“程序发生找不到或无法加载主类 cn.test1.test1”错误
在你程序不出现错误,而且你的编译器已经成功导入后 成功导入的样子 你可以重新打开一个项目 这就可以了^_^
- 在CMD上运行java文件时出现错误:找不到或者无法加载主类的问题
转载链接:https://blog.csdn.net/weixin_39085109/article/details/80189899
- 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子
一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...
- python 中 使用sys模块 获取运行脚本时在命令行输入的参数
在python项目的开发的过程中, 经常需要运行各种python脚本, 有时候还需要根据不同的使用情况输入不同的参数, 如果每次都去编辑一下脚本那就太麻烦,太耗费时间了, 这时就可以使用Python自 ...
- 在命令行中运行eclipse中创建的java项目
在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行 由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情 ...
- 在命令行中直接运行带main方法的java
用了很久的java,基本都是交给服务器完成的执行,有page之类的入口,或者是在IDE工具中直接 Run As Java Application. 并且一直对安装java之后配置JAVA_HOME,p ...
- 命令行通过入参调用jar包
命令行通过入参调用jar包 最近因为项目需要,需要实现一个功能,即定时执行服务器上的一个脚本去对数据库的数据进行业务处理,要操作的数据库有很多种,mysql.db2.oracle.sqlserver等 ...
随机推荐
- Redis可视化管理工具之Redislive
RedisLive是一款用Python编写基于WEB的Redis图形监控工具,也是一款实时监控Redis数据的开源软件,以WEB的形式展现出redis中的key的情况,实例数据等信息. RedisLi ...
- Codeforces Round #826 (Div
Codeforces Round #826 (Div. 3) Minimize the Thickness 给定数组a,要求将数组a分成若干个子序列,并且使得每个子序列中的元素和都相等,设这些子序列中 ...
- Vue.js vuex
1.前言 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它解决了vue中不同组件之间状态共享的问题. 通俗的说,它就是一个带响应式的全局变量管理,它数据的改变会触发相关页面/组件的更 ...
- MarkDown文档的编写
MarkDown的基本语法 MarkDown的标题语法 通过#进行创建标题,#的数量控制标题的级别 MarkDown的段落语法 通过空白行将一行或者多行文本进行分隔 MarkDown的强调语法 粗 ...
- OSG开发笔记(三十九):OSG中模型的透明度实现、球体透明度Demo
前言 在OSG中,对于一些效果未被选中或者包含等业务,需要半透明效果来实现. 本篇描述OSG的半透明实现方式. Demo 透明 功能概述 透明效果在三维场景中扮演着重要角色,它 ...
- 【分块】LibreOJ 6282 数列分块入门6
题目 https://loj.ac/p/6282 题解 数据范围 \(1 \leq n \leq 10^5\),因此进行分块最多分 \(\sqrt{10^5} ≈ 318\) 块.且数据是随机生成的, ...
- 基于ESP32的桌面小屏幕实战[4]:硬件设计之PCB Layout
1. PCB Layout 步骤 生成PCB 确定PCB layout规范 绘制板框尺寸 布局 布局规范: 按电气性能合理分区,一般分为:数字电路区(即怕干扰.又产生干扰).模拟电路区(怕干扰).功率 ...
- Modbus新手教程
REDISANT 提供互联网与物联网开发测试套件 # 互联网与中间件: Redis Assistant ZooKeeper Assistant Kafka Assistant RocketMQ Ass ...
- 中电金信:产教联合共育人才 AFAC2024金融智能创新大赛启动
当前,人工智能技术正在蓬勃发展,引领着各行各业迈向智能化的新纪元,特别是在金融科技领域,伴随人工智能技术的不断迭代与突破,金融服务的边界也在不断拓展,传统的金融业态正经历着深刻的变革与重塑. 与此同时 ...
- Jetpack Compose 的原理性文章
正在写一篇关于UI的思考,接触到 Android 的 Jetpack Compose: 从第一原则撰写 | 可理解的胡言乱语