在一次实验过程中,使用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包和主类的更多相关文章

  1. pycharm中可以运行的程序,在命令行中运行提示模块不存在的问题

    运行模块(包含main函数的模块),在模块开头添加以下代码,原因是pycharm运行python脚本时,会自动添加以下代码,将当前库加入到系统库目录集合中,在命令行中运行需要手动添加import os ...

  2. PostgreSQL 登录时在命令行中输入密码

    有时候需要设置定时任务直接执行 sql 语句,但是 postgresql 默认需要人工输入密码,以下命令可以直接在命令行中直接填入密码 PGPASSWORD=pass1234 psql -U MyUs ...

  3. java命令行执行程序解决依赖外部jar包的问题

    用java命令行直接执行程序,如果这个程序需要引用外部jar包.就不能单纯用java xx来执行 如果你的jar包和程序就在一个目录: 编译 javac -cp D:\yy\yy.jar,D\xx\x ...

  4. IntelliJ IDEA 运行java程序时出现“程序发生找不到或无法加载主类 cn.test1.test1”错误

    在你程序不出现错误,而且你的编译器已经成功导入后 成功导入的样子 你可以重新打开一个项目 这就可以了^_^

  5. 在CMD上运行java文件时出现错误:找不到或者无法加载主类的问题

    转载链接:https://blog.csdn.net/weixin_39085109/article/details/80189899

  6. 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子

    一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...

  7. python 中 使用sys模块 获取运行脚本时在命令行输入的参数

    在python项目的开发的过程中, 经常需要运行各种python脚本, 有时候还需要根据不同的使用情况输入不同的参数, 如果每次都去编辑一下脚本那就太麻烦,太耗费时间了, 这时就可以使用Python自 ...

  8. 在命令行中运行eclipse中创建的java项目

    在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行  由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情 ...

  9. 在命令行中直接运行带main方法的java

    用了很久的java,基本都是交给服务器完成的执行,有page之类的入口,或者是在IDE工具中直接 Run As Java Application. 并且一直对安装java之后配置JAVA_HOME,p ...

  10. 命令行通过入参调用jar包

    命令行通过入参调用jar包 最近因为项目需要,需要实现一个功能,即定时执行服务器上的一个脚本去对数据库的数据进行业务处理,要操作的数据库有很多种,mysql.db2.oracle.sqlserver等 ...

随机推荐

  1. MySQL底层概述—4.InnoDB数据文件

    大纲 1.表空间文件结构 (1)表空间Tablesapce (2)段Segment (3)区Extend (4)页Page (5)行Row 2.Page结构 (1)页结构各部分说明 (2)页结构整体划 ...

  2. GIT 使用SSH 方式提交代码

    1.需求 一般情况下,我们在提交代码的时候,使用 HTTP的方式提交代码,这种方式有一个问题,提交时需要输入账号和密码,这个就不是很安全,git 提供了 SSH的方式. 下面就实际操作一下如何使用ss ...

  3. Vue.js slot插槽

    1.插槽的基本用法 组件的插槽允许用户将其他组件或者html片段插入到组件当中 // App.vue <template> <div id="app"> & ...

  4. 西门子PLC与上位机通信方案梳理

    一.前言 大家好!我是付工. 西门子PLC是工控领域使用非常多的一种PLC品牌,对于上位机开发人员来说,对于西门子PLC的通信,我们一般可以采取哪些通信方式呢? 今天跟大家分享一下上位机实现与西门子P ...

  5. cmu15545笔记-WAL和数据库恢复

    目录 总览 缓存策略(Buffer Pool Policies) Shadow Paging(No-Steal + Force) SQLite Rollback Mode(Steal + Force) ...

  6. vue使用高德地图初始化坑

    使用的时候有时候会报除Amap没有定义之外的错如 TypeError: v.w.uh is not a constructor Uncaught TypeError: Cannot read prop ...

  7. Python 和 Podman

    1. Windows 10 上安装 Python 开始在 Windows 上使用 Python(初学者) 2. 使用 pip Python 的 Microsoft Store 安装包括 pip(标准包 ...

  8. NoSQL 述评

    作为主库的 nosql 只有 CockroachDB.TiKV 以及 MongoDB(从4.0后事务似乎可用了),CockrouchDB 已经收费,另外 YugabyteDB 也可选,但大家的反馈都不 ...

  9. HTMLDivElement.prototype

    HTMLDivElement.prototype.test = function(){console.log("i am div")} $0.innerHTML = '<di ...

  10. Qt编写的项目作品21-网络请求客户端/服务器

    一.实现原理 http请求就是tcp通信,所以第一步实例化QTcpServer类监听端口,并绑定newConnection信号槽. 一旦有新的连接,交给专门的解包类处理,将对应的数据解包,http请求 ...