Java学习笔记之一,用于个人记录。整理自《Head First Java》。

假设有如下目录结构:

程序入口在 Jukebox8.java。这个代码文件开头是有如下这样的包声明语句的:

package com.headfirstjava;

先进入到源码所在目录:

cd MyProject/source

1. 编译:

javac -d ../classes com/headfirstjava/Jukebox8.java

编译后会在classes目录下自动生成com目录,以及com下面的headfirstjava目录,并把相关的.class文件放在这个目录下:

2. 执行

cd MyProject/classes
java com.headfirstjava.Jukebox8

3. 创建JAR

3.1 要求:

  • 所有相关的类文件都放在 class 目录下相对应的包结构当中
  • 创建 manifest.txt 文件来描述哪个类带有 main(),格式如下:
Main-Class: com.headfirstjava.Jukebox8

当前环境下,要把 manifest.txt 文件放到 classes 目录下

3.2 执行 jar 命令创建 JAR 文件

cd MyProject/classes
jar -cvmf manifest.txt packEx.jar com

jar 是一个可执行命令

-cvmfjar 命令可接受的参数

  • c 表示 create,创建一个新的归档文件
  • v 表示 verbose,在标准输出中显示创建过程
  • m 表示指定 manifest 文件
  • f 指定新的归档文件的名字

packEx.jar 是生成之后的 JAR 文件的名字,这个名字可以随便起的

com 表示要打包的文件夹,也即是项目的类文件所在的地方

上述命令执行完后,生成的 JAR 文件会放在当前目录下。为了方便起见,先把生成的 packEx.jar 文件移动到一个叫 Skyler 的新目录下

4. 解压

解压可以直接用一般的压缩软件来解压,就像解压 zip 压缩包一样

4.1 查看JAR文件的内容:

cd Skyler
jar -tf packEx.jar
  • t 表示 table,即用表格的形式把归档文件中的文件列出来
  • f 同前述,指定文件

4.2 解压 JAR 文件

jar -xf packEx.jar
  • x 表示 eXtract,即提取
  • f 同前述,指定文件

执行完后会生成两个目录,结构如下:

META-INF目录下,有一个MANIFEST.MF文件,里面其实就相当于原来的 manifest.txt 的内容,不过更加丰富了。

而在com目录下,则与打包前的内容是一样的

5. 执行 JAR 包

java -jar packEx.jar

Jar 打包与执行的更多相关文章

  1. jar 打包后的文件执行时出现错误:RunJar jarFile [mainClass] args...

    修改别人的jar包中的配置文件,然后再打包后执行出错:RunJar jarFile [mainClass] args... 经过分析,是因为打包时需要设置mainClass,可以通过如下方法: jar ...

  2. windows10计划任务启动bat执行jar打包的jar文件

    今天公司要用bat文件执行jar打包的java文件,运行没项目的程序,并且用任务计划开机自启,今天记录下坑 系统:win10 一.编写.bat执行用jar打包的jar文件 @echo off java ...

  3. SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程

    一,创建Maven多模块项目先建立外层父工程         File →new →project  选择Spring Initializr          Next下一步到以下页面 工程结构如下 ...

  4. maven打包可执行jar文件运行报错

    起因 项目中同时依赖了Spring和MyBatis,并使用mybatis-spring集成MyBatis和Spring. 使用maven打包为可执行jar文件运行,打包插件为:maven-shade- ...

  5. spring boot项目maven打包可执行JAR

    在pom.xml中添加如下配置: <!-- 打包可执行jar包 --> <plugin> <groupId>org.springframework.boot< ...

  6. springboot打包的问题可执行jar和不可执行jar

    具体解释可以参看:https://www.cnblogs.com/liaojie970/p/9007577.html 如果只是想要依赖那么可以将springboot自带的打包插件换掉就可以了,换为如下 ...

  7. Apache Maven 打包可执行jar

    在本文的 参考资料 部分,您将发现大量介绍 Maven 的入门教程.本文的 5 个技巧目的是帮助您解决即将出现的一些问题:使用 Maven 管理您的应用程序的生命周期时,将会出现的编程场景. 1. 可 ...

  8. idea打包 - 可执行jar包

    需求:有一个基于SpringBoot的socket服务端程序,实现了对消息的接收.发送并行操作.此时想要将其构建成可执行的Jar包,执行 java -jar xx.jar后能够进行消息的收发. 分析: ...

  9. java基础篇-jar打包

    以helloworld程序为例: 一:正常流程: 1.首先编写一个hello.java的程序: public class Hello { public static void main(String[ ...

随机推荐

  1. 315道Python常见面试题

    第一部分,Python基础篇 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? Python ...

  2. MySQL的5大引擎及优劣之分

    MySQL提供了多个不同的存储引擎,其中5大引擎有:innodb,myisam,memory,merge,csv. 其中优点有:灾难恢复性好.支持事务.使用行级锁.支持外键关联.支持热备份 缺点如下: ...

  3. Linux下载——下载文件的命令

    Linux下载——获取网络文件的命令 摘抄:本文主要学习了在Linux系统中如何下载文件的命令. wget命令 wget命令是一个用来下载文件的命令,可以在后台运行,在用户退出之后仍能继续下载,支持代 ...

  4. centos7 apache后台转nginx后台

    背景 一开始买完服务器装的是用apache搭的后台, 现在想使用nginx, 希望对你有参考作用 查看系统版本信息 lsb_release -a 我的版本信息是 首先关闭apache-tomcat服务 ...

  5. CTF 入门笔记

    站点:http://www.moctf.com/ web1:水题非常简单的题目,直接F12查看元素即可,在HTML代码中,flag被注释了. web2:水题 该题的核心 就是通过HTML代码对输入框进 ...

  6. Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复114或者20140312可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 如果没有安装Ribbon Wor ...

  7. python中的随机模块random

    random模块是 python 中为随机数所使用的模块 ```import random # 随机生成0-1范围内的随机浮点数i = random.random()print(i) # 随机生成范围 ...

  8. 1.JavaCC安装与测试

      下面介绍的是JavaCC在windows系统中的安装与小代码测试过程. 一.JavaCC安装   步骤 :在JavaCC的官网首页下载JavaCC,然后配置电脑的环境变量,接着在dos命令行里就可 ...

  9. Jmeter之命令行生成HTML报告

    其实每次使用jemter.bat文件启动JMeter时,命令行窗口都会提示我们不要使用GUI窗口进行测试,除非是进行调试脚本 使用命令行生成结果也很测试报告也很简单 jmeter -n -t [jmx ...

  10. HDU 4729 An Easy Problem for Elfness(树链剖分边权+二分)

    题意 链接:https://cn.vjudge.net/problem/HDU-4729 给你n个点,然你求两个点s和t之间的最大流.而且你有一定的钱k,可以进行两种操作 1.在任意连个点之间建立一个 ...