使用java -jar运行jar包

摘要 其实不难,网上搜了不少,但是讲不全,或者讲得不少,有的细节却漏掉了, 在此,我想将详细点

1.其实命令比较简单:进入相应的目录后,执行java -jar XXX.jar即可!

2.但是,为什么通过Maven打包或者Eclipse export出来的jar不能运行呢?原因很简单,没指定执行哪个类的main方法,如何指定?配置文件,项目文件夹下有一个META-INF文件夹,META-INF文件夹下有一个MANIFEST.MF文件,只要更改该文件就可以了

3.默认该文件内容是:

Manifest-Version: 1.0
Created-By: 1.4.2(Sun Microsystems Inc.)

将其改成

Manifest-Version: 1.0
Created-By: 1.4.2(Sun Microsystems Inc.)
Main-Class: XXX.XXX.XXX.XXX

 

注意:

Main-Class后面X部分是包名.类名

Main-Class:后面有个空格,下面还有空的一行

4.改好内容后,怎么将其打成jar包呢?

我试过,直接用winrar打包,然后改后缀名,不行,

以下这种方法可行:

假设你的jar包名为myJar.jar:

(1)先将myJar.jar解压至myJar(在同一层文件夹)

(2)进入myJar文件夹,再进入META-INF文件夹,更改MANIFEST.MF文件,

按照步骤三的操作即可

(3)保存后退到myJar.jar同一层目录,然后执行jar umf myJar/META-INF/MANIFEST.MF myJar.jar

如果没报错,并生成了XXX.tmp文件,就说明执行成功,

打开myJar.jar就可以看到MANIFEST.MF文件已经被改成了相应的需要的文件了

(4)在当前目录执行java -jar myJar.jar即可

使用java -jar运行jar包的更多相关文章

  1. [Java] 可运行 jar 记录

    在 Eclipse 上,通过 Export 选择 Java 下的 Runnable JAR file ,可以将项目导出一个可执行的 jar 包. 例子如下 1. Eclipse 项目只有一个文件 ma ...

  2. jdk的安装 打包jar 运行jar

    安装 系统变量→新建 JAVA_HOME 变量 . 变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0) 系统变量→寻找 Path 变量→编辑 在变量值最后输入 %JAVA_HOME ...

  3. java指定运行jar包中的其中一个main方法

    java -cp jar包 类名 java -cp ******.jar com.******.EsEtl

  4. java命令运行带包的类

    类文件d:\test2.java package b; public class test2 {    public static void main(String[] args) {         ...

  5. maven 打包可运行jar包(转)

    目录 1.前提 2.方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 3.方法二:使用maven-assembly-plugin插件打包 4.方法三 ...

  6. Springboot项目打包成jar运行2种方式

    最近公司有个项目需要移植到SpringBoot框架上,项目里面又有许多第三方jar包,在linux服务器上最方便的就是用jar的方式来运行SpringBoot项目了,因此我研究了2种打jar包的方式, ...

  7. 【java】 linux下利用nohup后台运行jar文件包程序

    Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...

  8. Intellij IDEA下导出Java工程的可运行JAR包

    Intellij IDEA下导出Java工程的可运行JAR包 昨天一直向导出一个Java工程的可运行JAR包,然后查阅网上的资料以及自己一遍一遍的尝试,均以失败告终.可以导出JAR包,但是导出的JAR ...

  9. java 项目打jar包,用cmd运行,并且编写运行脚本

    项目是ideal编辑器的springboot项目的demo.打包就是在侧边栏,点击packge ,就会在target下生成jar包. 生成之后把 jar包放在一个文件夹中.新建一个txt文件,在txt ...

随机推荐

  1. sublime text 快键键

    sublime text 的快捷键ctrl+l                              选择整行(按住-继续选择下行)ctrl+shift+k                    ...

  2. Zeppelin0.6.2+sparkR2.0.2环境搭建

    0.序 先吐槽一下网上旧版本的Zeppelin和R的安装,让我折腾了几个小时. 不过最终还是调通了也不容易,其实我现在一点R都没有学呢,只是刚看了一节课,但是这个工具既然出现在了Spark中,我想它还 ...

  3. bootstrap 网格布局

    一:基本的网格布局 <div class="container"> <div class="row"> <div class=&q ...

  4. .htaccess的基本用法与介绍

    ●自定义错误页 .htaccess的一个应用是自定义错误页面,这将使你可以拥有自己的.个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面.这会让你的网站在出错的时候看上去 ...

  5. python--7、面向对象

    什么是面向对象 对象,即抽象的一类事物中的某个具体的个体.这个世界中存在的一切皆为对象,不存在的也能创建出来. 较之面向过程的区别: 编程的复杂度远高于面向过程,不了解面向对象而立即上手基于它设计程序 ...

  6. python--1、入门

    python的创始人为吉多·范罗苏姆(Guido van Rossum). python在2017年统计的所有语言排名中处于第四名,稳步上升状态. python应用领域: WEB开发(Django框架 ...

  7. CentOS7.5 AndroidStudio Debug报错:insufficient permissions for device

    / ::: Launching instantapp $ adb push /home/vevi/AndroidStudioProjects/WeChatGod/app/build/outputs/a ...

  8. JavaScript中赋值运算符的使用

    JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算.简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中:而复合赋值运算混合了其他操作(例如算术运算操作)和赋值操作.例如: ...

  9. [转]JAVA回调机制(CallBack)详解

    看见一篇博客比较通俗的解释了回调机制,转载一下,感谢原文作者Bro__超,原文地址:http://www.cnblogs.com/heshuchao/p/5376298.html 序言 最近学习jav ...

  10. C# 查找、结束进程 - 通过进程名精确、模糊查找、结束进程

    /// <summary> /// 根据“精确进程名”结束进程 /// </summary> /// <param name="strProcName" ...