精华内容
下载资源
问答
  • 使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。 ...day084 部署Java程序(一)(JAR文件:创建JAR文件、清单文件、可执行JAR文件、资源、密封) ...

    使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。

    day084   部署Java程序(一)(JAR文件:创建JAR文件、清单文件、可执行JAR文件、资源、密封)

    准备创建提交给用户的应用程序,需要知道如何将这些应用程序进行打包,以便部署到用户的计算机上。传统的部署方式是使用applet,这应该归功于在Java出现的最初几年中对其给予的大肆吹捧。applet是一种特殊的Java程序,它允许通过网络下载,并可以在浏览器中运行。其目的在于让用户不再为安装软件烦恼,并且可以通过支持Java的计算机或者其他具有Internet连接的设备使用这些软件。由于种种原因,applet并没有实现上述目标。


    JAR 文件

    在将应用程序进行打包时,使用者一定希望仅提供给其一个单独的文件,而不是一个含有大量类文件的目录,Java归档(JAR)文件就是为此目的而设计的。一个JAR文件既可以包含类文件,也可以包含诸如图像和声音这些其他类型的文件。此外,JAR文件是压缩的,它使用了大家熟悉的ZIP压缩格式。


    1.创建JAR文件

    可以使用jar工具制作JAR文件(在默认的JDK安装中,位于jdk/bin目录下)。创建一个新的JAR文件应该使用的常见命令格式为:jar cvf JARFileName File1 File2 . . .

    通常,jar命令的格式如下:jar options File1 File2...

    下表列出了所有 jar 程序的可选项。它们类似于 UNIX tar 命令的选项。

    可以将应用程序、程序组件以及代码库打包在JAR文件中。例如,JDK的运行时库包含在一个非常庞大的文件rt.jar中。


    2.清单文件

    除了类文件、图像和其他资源外,每个JAR文件还包含一个用于描述归档特征的清单文件(manifest)。

    清单文件被命名为MANIFEST.MF,它位于JAR文件的一个特殊META-INF子目录中。最小的符合标准的清单文件是很简单的:Manifest-Version:1.0

    复杂的清单文件可能包含更多条目。这些清单条目被分成多个节。第一节被称为主节(main section)。它作用于整个JAR文件。随后的条目用来指定已命名条目的属性,这些已命名的条目可以是某个文件、包或者URL。它们都必须起始于名为Name的条目。节与节之间用空行分开。例如:

    Manifest-Version:1.0

    描述这个归档文件的行

    要想编辑清单文件,需要将希望添加到清单文件中的行放到文本文件中,然后运行:

    jarcfmJARFileNameManifestFileName...

    例如,要创建一个包含清单的JAR文件,应该运行:

    jarcfmMyArchive.jarmanifest.mfcom/mycompany/mypkg/*.class

    要想更新一个已有的JAR文件的清单,则需要将增加的部分放置到一个文本文件中,然后执行下列命令:

    jarufinMyArchive.jarmanifest-additions.mf


    3.可执行JAR文件

    可以使用jar命令中的e选项指定程序的人口点,即通常需要在调用java程序加载器时指定的类:

    jar cvfe MyProgram.jar com.myconipany.mypkg.MainAppClass files to add

    或者,可以在清单中指定应用程序的主类,包括以下形式的语句:

    Main-C1ass:com.mycompany.mypkg.MainAppClass

    不要将扩展名.class添加到主类名中。清单文件的最后一行必须以换行符结束。否则,清单文件将无法被正确地读取。常见的错误是创建了一个只包含Main-Class而没有行结束符的文本文件。

    不论哪一种方法,用户可以简单地通过下面命令来启动应用程序:

    java-jarMyProgram.jar

    根据操作系统的配置,用户甚至可以通过双击JAR文件图标来启动应用程序。下面是各种操作系统的操作方式:

    •在Windows平台中,Java运行时安装器将建立一个扩展名为jar的文件与javaw-jar命令相关联来启动文件(与java命令不同,javaw命令不打开shell窗口)。

    •在Solaris平台中,操作系统能够识别JAR文件的“魔法数”格式,并用java-jar命令启动它。

    •在Mac OS X平台中,操作系统能够识别.jar扩展名文件。当双击JAR文件时就会执行Java程序可以运行。

    无论怎样,人们对JAR文件中的Java程序与本地文件有着不同的感觉。在Windows平台中,可以使用第三方的包装器工具将JAR文件转换成Windows可执行文件。包装器是一个大家熟知的扩展名为.exe的Windows程序,它可以查找和加载Java虚拟机(JVM),或者在没有找到JVM时告诉用户应该做些什么。

    在Macintosh平台中,这种情形处理起来会容易一些。JarBundler工具是XCode的一部分,可以将JAR文件转换为一个一流的Mac应用。


    4.资源

    在applet和应用程序中使用的类通常需要使用一些相关的数据文件,例如:

    •图像和声音文件。

    •带有消息字符串和按钮标签的文本文件。

    •二进制数据文件,例如,描述地图布局的文件。

    在Java中,这些关联的文件被称为资源(resource)。

    例如,AboutPanel类显示了一条信息,如图所示。当然,在面板中的书名和版权年限将会在出版下一版图书时发生变化。为了易于追踪这个变化,希望将文本放置在一个文件中,而不是以字符串的形式硬写到代码中。

    但是应该将about.txt这样的文件放在哪儿呢?显然,将它与其他程序文件一起放在JAR文件中是最方便的。类加载器知道如何搜索类文件,直到在类路径、存档文件或web服务器上找到为止。利用资源机制,对于非类文件也可以同样方便地进行操作。下面是必要的步骤:

    1)获得具有资源的Class对象,例如,AboutPanel.class。

    2)如果资源是一个图像或声音文件,那么就需要调用getresource(filename)获得作为URL的资源位置,然后利用getlmage或getAudioClip方法进行读取。

    3)与图像或声音文件不同,其他资源可以使用getResourceAsStream方法读取文件中的数据。重点在于类加载器可以记住如何定位类,然后在同一位置査找关联的资源。

    文件的自动装载是利用资源加载特性完成的。没有标准的方法来解释资源文件的内容。每个程序必须拥有解释资源文件的方法。另一个经常使用资源的地方是程序的国际化。与语言相关的字符串,如消息和用户界面标签都存放在资源文件中,每种语言对应一个文件。

    下面这个程序演示了资源加载。编译、创建JAR文件和执行这个程序的命令是:

    javac resource/ResourceTest.java

    jar cvfm ResourceTest.jar resource/ResourceTest.mf resource/*.class resource/*.gif resource/*.txt

    java-jar ResourceTest.jar

    将JAR文件移到另外一个不同的目录中,再运行它,以便确认程序是从JAR文件中而不是从当前目录中读取的资源。

    /**
     *@author  zzehao
     */
    import java.awt.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import javax.swing.*;
    
    public class ResourceTest
    {
    	public static void main(String[] args)
    	{
    		EventQueue.invokeLater(() -> {
    			JFrame frame = new ResourceTestFrame();
    			frame.setTitle("RecourceTest");
    			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    			frame.setVisible(true);
    		});
    	}
    }
    
    //A frame that loads image and text resources.
    class ResourceTestFrame extends JFrame
    {
    	private static final int DEFAULT_WIDTH = 300;
    	private static final int DEFAULT_HEIGHT = 300;
    
    	public ResourceTestFrame()
    	{
    		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
    		URL aboutURL = getClass().getResource("about.gif");
    		Image img = new ImageIcon(aboutURL).getImage();
    		setIconImage(img);
    
    		JTextArea textArea = new JTextArea();
    		InputStream stream = getClass().getResourceAsStream("about.txt");
    		try(Scanner in = new Scanner(stream,"UTF-8"))
    		{
    			while (in.hasNext())
    			{
    				textArea.append(in.nextLine() + "\n");
    			}
    			add(textArea);
    		}
    	}
    }
    

                    jar包就是这样了   

                      


    5.密封

    可以将 Java包密封 (seal ) 以保证不会有其他的类加人到其中。

    如果在代码中使用了包可见的类、方法和域,就可能希望密封包。如果不密封,其他类就有可能放在这个包中,进而访问包可见的特性。

    例如,如果密封了com.mycompany.util包,就不能用下面的语句顶替密封包之外的类:

    packagecom.mycompany.util;

    要想密封一个包,需要将包中的所有类放到一个JAR文件中。在默认情况下,JAR文件中的包是没有密封的。可以在清单文件的主节中加人下面一行:

    Sealed:true

    来改变全局的默认设定。对于每个单独的包,可以通过在JAR文件的清单中增加一节,来指定是否想要密封这个包。例如:

    Name:com/mycoinpany/util/

    Sealed:true

    Name:com/myconpany/misc/

    Sealed:false

    要想密封一个包,需要创建一个包含清单指令的文本文件。然后用常规的方式运行jar命令:

    jar cvfm MyArchive.jar manifest.mf files to add


     

    展开全文
  • 用Java创建jar文件

    2020-05-26 04:16:35
    在命令提示符下创建jar文件 启动命令提示符。 ------------------------ 导航到保存类文件的文件夹: C:\> cd \ mywork 设置路径以包含JDK的bin。 例如: ------------------------------------------- 如果将...

    在命令提示符下创建jar文件

    启动命令提示符。

    ------------------------

    导航到保存类文件的文件夹:

    C:\> cd \ mywork

    设置路径以包含JDK的bin。 例如:

    -------------------------------------------

    如果将路径和类路径设置为环境变量,则:

    C:\ mywork> javac

    如果不是,则用于活动会话:

    C:\ mywork>设置路径=“ c:\ Program Files \ Java \ jdk1.5.0_09 \ bin”

    编译您的课程:

    ------------------------

    C:\ mywork> javac * .java

    如果文件已打包,则:

    c:\ mywork> javac ./package/*.java

    创建清单文件:

    -----------------------

    Main-Class是禁止void main method()的类

    C:\ mywork>回声Main-Class:ClassName> manifest.txt

    如果文件包含软件包,则

    C:\ mywork> echo Main-Class:Package.Classname> manifest.txt

    警告:清单文件的类名后不得包含任何空格

    ----------

    创建一个jar文件:

    -----------------

    罐子选项:

    创建jar文件

    jar c [v0M] f jarfile [-C dir]输入文件[-Joption]

    jar c [v0] mf清单jarfile [-C dir]输入文件[-Joption]

    jar c [v0M] [-C目录]输入文件[-Joption]

    jar c [v0] m清单[-C dir]输入文件[-Joption]

    更新jar文件

    jar u [v0M] f jarfile [-C dir]输入文件[-Joption]

    jar u [v0] mf清单jarfile [-C dir]输入文件[-Joption]

    jar u [v0M] [-C目录]输入文件[-Joption]

    jar u [v0] m清单[-C dir]输入文件[-Joption]

    提取jar文件

    jar x [v] f jarfile [输入文件] [-Joption]

    jar x [v] [输入文件] [-Joption]

    列出jar文件的目录

    jar t [v] f jarfile [inputfiles] [-Joption]

    jar t [v] [inputfiles] [-Joption]

    将索引添加到jar文件

    jar我jarfile [-Joption]

    C:\ mywork> jar cvfm JarFile.jar manifest.txt * .class

    对于包类文件:

    C:\ mywork> jar cvfm JarFile.jar manifest.txt ./Package/*.class

    用于在Jar中包含其他文件

    C:\ mywork> jar cvfm JarFile.jar manifest.txt ./Package/*.class ./Package/*.xml ./Package/*.jpeg

    要么

    C:\ mywork> jar cvfm JarFile.jar manifest.txt ./Package/*.class ./Package/ABC.xml ./Package/config.Properties

    信息:在jar创建选项中也包括所有必需的文件。

    -----

    现在,如果已创建UR Jar文件,则运行

    C:\ mywork> java -jar JarFile.jar {如果有参数,则}

    另请参阅http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/jar.html

    作者:Kuldeep Sharma,2011年12月19日。

    From: https://bytes.com/topic/java/insights/927775-creating-jar-file-java

    展开全文
  • 一、如何创建JAR文件?  .jar是用来压缩档案或者解压档案的文件格式,其特点是具有无损压缩的功能。想知道如何创建这种程序?请访问 http://www.cnblogs.com/yjmyzz/p/executable-jar.html  .jar可以通过整理...

    一、如何创建JAR文件?

      .jar是用来压缩档案或者解压档案的文件格式,其特点是具有无损压缩的功能。想知道如何创建这种程序?请访问 http://www.cnblogs.com/yjmyzz/p/executable-jar.html

     

      .jar可以通过整理Java程序的类别文件来变为可执行文件,而编译器或Java虚拟机可以识别这些格式。.jar文件是通过javaw(Java应用程序管理器)执行的。你需要设置.jar文件中的应用程序接入点(即含有程序主功能的文件类别)。你需要通过清单文件(Manifest file)来设置接入点。步骤如下:

      1、Java工具会自动把meta-inf/manifest.mf设置为.jar的文件路径。创建新的清单文件的时候,名字会创建为 "Manifest-Version: 1.0, Created-By: 1.6.0 (Sun Microsystems Inc)"

      2、创建manifest addition .txt 文件。输入 Main Class: [Package Name].[Class Name], ,把[Package Name]、[Class Name]替换为你的套件名称和类别名称(即创建了属性值对)不要忘了最后加一行空行。

      3、进入这个终端指令程序,调整清单文件,使其包括应用程序的接入点,把以下代码的中括号部分改为你程序的信息。 jar cfm [jar 文件名] [附加清单文件名] [导入文件]

      4、重新看一下清单文件。设置了接入点以后,会是 "Manifest-Version: 1.0,Created-By: 1.6.0 (Sun Microsystems Inc), Main Class: [套件名称].[类别名称]"

      5、你也可以用jar工具设置接入点。不过这样会覆盖清单文件中主类别属性。输入下面代码(把中括号部分替换) jar cfe [jar 文件名] [套件名称] [带主功能的种类名称]

      

    二、如何运行.jar形式的Java程序?

      .jar可能是个程序或库,如果是库(不含有可执行的文件类型),试着运行它也是没用的。

      .jar 需要依赖其他程序运行(如同.exe)。如果不在你的类别路径中,可能就运行不了程序。

      含有 javaw.exe的文件夹内,有个程序叫 javaws.exe ,不要弄混这两个了,前者是用来在Windows中运行Java程序的工具,后者是 JAVA web start(Java应用程序管理工具)。

     

      1、在linux运行时,登录远程服务器后,进入对应的路径下,运行 .jar(java应用程序运行的主要方法): java -jar [Jar 文件名]。这个命令打印后,只要CRTL+C或退出终端,进程就会关掉。日志实时打印

      

     

      

      命令改成java -jar [Jar 文件名] & 时,会打印pid,同样,这个命令开始后,只要关闭终端,进程就会关掉。

      

     

      

      2、在Windows系统运行时,

      运行 .jar 文件,用以下代码运行 .jar(java应用程序运行的主要方法): java -jar [Jar 文件名]

       (1)cmd

       (2)java -jar 盘:\文件名\XXXX.jar

      使得可以双击执行 .jar程序(可选)。 要双击打开.jar文件的话,需要把 javaw (java 应用程序管理器)可执行程序文件路径改变,输入以下代码: C:\Program Files\Java\j2rex.y.z\bin\javaw.exe" -jar "%1" %*

     

    转载于:https://www.cnblogs.com/yulia/p/6508522.html

    展开全文
  • 刚才用eclipse的export功能创建了一个程序的jar文件,结果死活不能运行。后来发现原因是没有指定the class of application entry point。真是弱,不会自己去找。。。。另:运行jar程序的命令行是java -jar xxx.jar 

    刚才用eclipse的export功能创建了一个程序的jar文件,结果死活不能运行。

    后来发现原因是没有指定the class of application entry point。真是弱,不会自己去找。。。。

    另:运行jar程序的命令行是

    java -jar xxx.jar

     

    展开全文
  • 创建可执行JAR文件

    2020-08-16 16:28:31
    创建可执行JAR文件创建可执行JAR文件Linux命令行创建可执行JAR文件 创建可执行JAR文件 Linux命令行创建可执行JAR文件 1 将源文件编译成字节码文件 下面展示编译Java源文件的 代码. // Print.java and Main.java are ...
  • JAR 文件使用详解

    2021-02-20 23:01:43
    JAR 文件使用详解一、如何创建 JAR 文件?二、什么是清单文件?三、如何创建一个可执行 JAR 文件JAR 文件是一种压缩文件,使用了ZIP压缩格式。 一、如何创建 JAR 文件? 可使用 jar 工具制作 JAR 文件:[位于 ...
  • 13.1 JAR文件

    2016-12-09 13:17:02
    1 创建JAR文件jar cvf JARFileName File1 File2 . . . jar cvf CalculatorClasses.jar *.class icon.gif jar options File1 File2 . . .2 清单文件3 可执行JAR文件jar cvfe MyProgram.jar com.mycompany.mypkg.Main
  • JAR文件使用

    2017-04-20 20:16:21
    JAR文件是压缩的,使用zip压缩格式创建JAR文件通常的命令格式:jar cvf JARFileNam file1 file2 ...例如:jar cvf CalculatorClasses.jar *.class icon.gif清单文件用于描述归档特征的文件命名为MANIFESR.MF 位于META-...
  • 学习jar命令 创建和解压jar文件包    java编程中每天都用不少jar文件,项目开发中不停地导包,在忙完了一天的工作,放下那些复杂的业务实现,不仅想问这些jar包怎么生成的,jar包有哪些独特的地方等等。 ...
  • 创建可执行的JAR文件

    2013-03-22 13:25:00
    可执行的JAR文件不需要将文件抽取出来就可以执行,也就是说,程序可以在类文件保存为JAR文件时就可以执行,关键就是要创建mainfest.txt文件,它含有JAR文件的信息,告诉Java虚拟机哪个类含有main()方法。...
  • java编程中每天都用不少jar文件,项目开发中不停地导包,在忙完了一天的工作,放下那些复杂的业务实现,不仅想问这些jar包怎么生成的,jar包有哪些独特的地方等等。  原来这些经常见到的jar包是jar命令生成的,java...
  • 创建可执行的JAR文件

    2013-04-24 20:00:33
    可执行的JAR文件不需要将文件抽取出来就可以执行,也就是说,程序可以在类文件保存为JAR文件时就可以执行,关键就是要创建mainfest.txt文件,它含有JAR文件的信息,告诉Java虚拟机哪个类含有main()方法。下面就是...
  • 前言 现在就开始VScode创建jar包,jar包转成.exe文件,.exe文件转成安装包的一条龙服务吧! 我的电脑环境:win10
  • 创建run.sh文件来启动.jar文件

    千次阅读 2019-08-20 17:16:44
    创建run.sh文件来启动.jar文件1、新建一个文件夹2、新建run.sh3、运行run.sh4、查看日志5、报错处理 1、新建一个文件夹 文件夹中放置需要运行的,jar文件,以及application.yml文件; 2、新建run.sh 命令为 touch ...
  • Maven – Create a fat Jar file – One-JAR example Posted on October 18, 2014 By mkyong In this tutorial, we will show you how to use Maven build tool, One-...
  • 主要原理就是将一个可执行脚本与jar文件合并到一个文件。假设可执行文件为start.sh,jar文件为helloworld.jar。执行下面脚本: cat start.sh helloworld.jar > helloworld.run.jar && chmod...
  • We've seen the internals of MapReduce in the last ... Now we can make a little change to the WordCount and create a JAR for being executed by Hadoop.  If we look at the result of the WordCount we
  • java编程中每天都用不少jar文件,项目开发中不停地导包,在忙完了一天的工作,放下那些复杂的业务实现,不仅想问这些jar包怎么生成的,jar包有哪些独特的地方等等。  原来这些经常见到的jar包是jar命令生成的,java...
  • jar文件

    2017-12-10 17:59:00
    1.创建一个jar文件: jar cf MenuTest *.txt *.gif 2.为jar文件中的所有文件生成详细的输出结果: jar cvf MenuTest .jar* 3.为jar文件中的txt文件生成详细的输出结果: jar cvf MenuTest .jar *.txt <2&...
  • 3.在可执行jar包所在路径创建run.txt文件 4.编辑run.txt内容(输入java -jar xxx.jar)   5.保存并修改的文件拓展名(.bat或者.cmd) 6.双击运行即可 注:bat文件与cmd文件的区别 本质上没有区别,都是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,675
精华内容 7,070
关键字:

创建jar文件