java打包成jar
怎么把Java .class文件打成jar包?
怎么把Java.class文件打成jar包?方法1:在Eclipse中可以导出JAR文件(类似于EXE文件,不过需要JAVA虚拟机支持),执行File→Export→JAR(Runable)即可。
eclipse-->右键单击一个Java Project-->Export-->Java-JARfile/Runnable JAR file//也可以是Project下的一个Package方法2:jar命令:示例1:将两个class文件存档到一个名为'classes.jar'的存档文件中:jar cvf classes.jar Foo.class Bar.class示例2:用一个存在的清单(manifest)文件'mymanifest'将foo/目录下的所有文件存档到一个名为'classes.jar'的存档文件中:jar cvfm classes.jar mymanifest-C foo/.jar用法:jar{ctxu}[vfm0Mi][jar-文件][manifest-文件][-C目录]文件名...选项:-c创建新的存档-t列出存档内容的列表-x展开存档中的命名的(或所有的〕文件-u更新已存在的存档-v生成详细输出到标准输出上-f指定存档文件名-m包含来自标明文件的标明信息-0只存储方式;未用ZIP压缩格式-M不产生所有项的清单(manifest〕文件-i为指定的jar文件产生索引信息-C改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm'和'f'标志指定的相同顺序。
ECLIPSE将引用了第三方JAR包的JAVA项目打包成JAR文件的两种方法
ECLIPSE将引用了第三方JAR包的JAVA项目打包成JAR文件的两种方法在Eclipse中,我们可以使用两种方法将引用了第三方JAR包的Java项目打包成JAR文件。
下面将详细介绍这两种方法。
方法一:使用Eclipse自带的导出功能1. 在Eclipse中,右键单击项目,选择"Export"。
2. 在弹出的对话框中,选择"Java"下的"JAR file",然后点击"Next"。
3. 在"JAR File Specification"页面上,选择要导出的项目以及要导出的资源;在"Export destination"中,指定导出的JAR文件的保存路径和文件名。
4. 在"JAR Packaging Options"页面上,选择"Export generated class files and resources",确保要导出的类文件和资源都被包含在JAR文件中。
5. 在"Select the export destination"页面上,选择"Package required libraries into generated JAR",这将会将所需的第三方JAR包也包含在生成的JAR文件中。
6. 点击"Finish"完成导出。
这种方法的优点是简单快捷,只需要几个简单的步骤就可以完成打包。
但是缺点是生成的JAR文件会将第三方JAR包也放在同一个目录下,可能导致文件夹混乱。
方法二:使用Apache Maven插件打包1. 首先,确保你的项目中存在pom.xml文件,它描述了项目的依赖关系和构建配置。
2. 打开Eclipse的"Terminal"窗口,或者使用其他的命令行工具。
java打jar包的几种方式详解
java打jar包的⼏种⽅式详解⼀、制作只含有字节码⽂件的jar包我们先来看只含有字节码⽂件,即只含有class⽂件的jar包怎么制作,这是最简单的形式1、最简单的jar包——直接输出hello最终⽣成的jar包结构META-INFHello.class⽅法步骤(1)⽤记事本写⼀个Hello.java的⽂件class Hello{public static void main(String[] agrs){System.out.println("hello");}}(2)⽤命令⾏进⼊到该⽬录下,编译这个⽂件 javac Hello.java(3)将编译后的Hello.class⽂件打成jar包 jar -cvf hello.jar Hello.class c表⽰要创建⼀个新的jar包,v表⽰创建的过程中在控制台输出创建过程的⼀些信息,f表⽰给⽣成的jar包命名(4)运⾏jar包 java -jar hello.jar 这时会报如下错误 hello.jar中没有主清单属性 添加Main-Class属性 ⽤压缩软件打开hello.jar,会发现⾥⾯多了⼀个META-INF⽂件夹,⾥⾯有⼀个MENIFEST.MF的⽂件,⽤记事本打开Manifest-Version: 1.0Created-By: 1.8.0_121 (Oracle Corporation) 在第三⾏的位置写⼊ Main-Class: Hello (注意冒号后⾯有⼀个空格,整个⽂件最后有⼀⾏空⾏),保存 再次运⾏ java -jar hello.jar ,此时成功在控制台看到 hello ,成功2、含有两个类的jar包——通过调⽤输出hello最终⽣成的jar包结构META-INFTom.classHello.class⽅法步骤(1)⽤记事本写⼀个Hello.java和⼀个Tom.java的⽂件 ⽬的是让Hello调⽤Tom的speak⽅法class Hello{public static void main(String[] agrs){Tom.speak();}}class Tom{public static void speak(){System.out.println("hello");}}(2)编译: javac Hello.java 此时Hello.java和Tom.java同时被编译,因为Hello中调⽤了Tom,在编译Hello的过程中发现还需要编译Tom(3)打jar包,这次我们换⼀种⽅式直接定义Main-Class。
classfinal-fatjar 反编译
classfinal-fatjar 反编译1. 引言1.1 背景介绍classfinal-fatjar 是一种用于Java 程序打包的工具,它可以将项目中的所有依赖库一起打包成一个可执行的JAR 文件。
这样一来,用户可以方便地将整个程序分发给其他人,而无需担心依赖库的缺失或版本不一致的问题。
由于JAR 文件是经过压缩和优化的,其中的代码可能并不是以人类可读的形式呈现,这就给程序的分析和调试带来了一定的困难。
为了解决这个问题,开发人员们开发了各种反编译工具,可以将JAR 文件中的字节码反编译成类似于原始Java 代码的形式。
这样一来,我们就可以更轻松地理解和分析其中的代码逻辑,甚至可以进行一些修改和优化。
本文将通过对classfinal-fatjar 工具进行反编译,并对反编译后的代码进行分析和比对,来探讨其效果和可能存在的问题,并展望未来反编译工具的发展方向。
2. 正文2.1 classfinal-fatjar 的功能介绍classfinal-fatjar是一个用于将Java项目打包成可执行的独立JAR 文件的工具。
它的主要功能包括将项目中所有的依赖库打包到一个JAR文件中,同时保留原始的类和资源文件结构,使得整个项目可以像一个独立的应用程序一样运行。
这种打包方式不但简化了项目的部署和传播,还能够避免依赖库版本不一致导致的问题。
使用classfinal-fatjar工具非常简单,只需要通过命令行指定待打包的项目目录和输出的JAR文件路径即可。
工具会自动扫描项目中的依赖库并将其打包到JAR文件中。
用户还可以通过配置文件指定额外的操作,比如排除某些依赖库或者指定特定的类作为入口点。
反编译后的代码分析显示,classfinal-fatjar打包的JAR文件保留了所有原始类和资源文件,且依赖库也被正确地引入。
与原始代码相比,反编译后的代码结构基本一致,只是多了一些额外的打包信息。
可能存在的问题主要是对于一些特殊的依赖库打包不完整的情况,需要用户手动进行调整或排除。
Java打包成jar文件,以及将jar文件导出为exe文件方法汇总
Java打包成jar文件,以及将jar文件导出为exe文件方法汇总(图形说明)一、Java打包成jar文件方法一:用Eclipse导出jar文件注:我用的是Eclipse,但是MyEclipse也大同小异首先右键点击所要打包的工程,选择Export选项选择JAR file,点击Next在要打包的工程前打钩,如上图红色所示;选择导出文件的目的地址,如图蓝色所示,包名随意,没有特定的要求;点击Next点击Browse选择到主类所在的上一个文件夹,别忘了填写File name(随意起名即可),点击OK;点击第四幅图的下面的Browse按钮,选择主类的名字,如下图所示点击OK,即可完成打包。
运行jar文件,可将jar文件与一个批处理文件放到一个文件夹中;其中批处理文件的内容为:java -jar neme.jar(其中name为jar包的名字)批处理文件格式为.bat;双击批处理文件即可运行程序。
PS:将java工程文件打包成.exe文件我用的是一个exe4j的免费软件第一步:默认即可,直接点击Next第二步:如果有已经制作好的jar文件,选择“JAR in EXE”mode,然后点击Next第三步:红色划线框内填写工程名字,随意即可;蓝色划线框内填写打包后的exe文件输出目录第四步:如果需要导出为exe文件的是图形界面,则选择GUI application;如果要导出为exe文件的是控制台的,则选择console application;Executable name写你将要生成的exe文件的名字,Icon File可以选择生成文件的图标第五步:点击绿色的加号,出现如下所示对话框,选择archive,然后选择已经打包好的jar文件选择主类完成后如图所示第六步:最小版本填1.3,最大版本填1.6;如果只需导出的exe在装有JRE的机子上可以运行,那么一路Next下去,最后点击Finish即可;如果想要在没有装JRE的机器上运行,那么需要继续,点击Advanced Options,选择searchsequence选择Directory,点击浏览按钮,选择JRE所在的根目录,将JRE复制过来,如下图所示选择Preferred VM,选择Client hotspot VM第7、8步是一些基本配置,默认即可,第9步编译,第10步你就可以看到以下效果了好了,大功告成了~方法二:用命令生成jar文件首先编写一个清单文件,名为:MANIFEST.MFT,其代码如下:Manifest-Version: 1.0//该属性是创建可执行jar包必需的,指定的Main-Class为全路径类名(且该类必需有main方法)Main-Class:填写你的主类Created-By: 1.5.0_02 (Sun Microsystems Inc.)然后,使用如下命令生成jar文件:jar cfm 填写你要生成jar的名字.jar MANIFEST.MFT *.class其中,c表示要生成一个新的jar文件;f表示生成jar的名字;m表示清单文件的名字二、ar文件导出为可执行文件,即exe文件方法一:用j2ewiz,使用方法如下:操作步骤:1、双击j2ewiz.exe,出现软件注册窗口,点击下一步。
命令行下编译java并生成jar包(1)
命令行下编译java并生成jar包jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布。
为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java 存档文件。
这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部署)。
那我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。
Jar技术在jdk1.1版本中就已存在,在1.2中又有了增强。
接下来说说jar的好处吧,这是官方的描述:安全,快速下载,压缩,猎取包,版本化包,可携。
说了这么多,我们现在开始实施。
先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar –help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名…选项:-c 创建新的存档-t 列出存档内容的列表-x 展开存档中的命名的(或所有的〕文件-u 更新已存在的存档-v 生成详细输出到标准输出上-f 指定存档文件名-m 包含来自标明文件的标明信息-0 只存储方式;未用ZIP压缩格式-M 不产生所有项的清单(manifest〕文件-i 为指定的jar文件产生索引信息-C 改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按‘m‘ 和‗f‘标志指定的相同顺序。
示例1:将两个class文件存档到一个名为‗classes.jar‘ 的存档文件中:jar cvf classes.jar Foo.class Bar.class示例2:用一个存在的清单(manifest)文件‗mymanifest‘ 将foo/ 目录下的所有文件存档到一个名为‗classes.jar‘ 的存档文件中:jar cvfm classes.jar mymanifest -C foo/ .来个小例子试试看:我们只有一个HelloWorld,如下:public class HelloWorld{public static void main(String[] args){System.out.println(―Hi, Hello World!‖);}}我将这个java文件存到C盘跟目录下,ok,接下来,在先前打开的命令提示符下(跳转到C盘提示符下),我们输入javac HelloWorld.java,然后继续输入:jar cvf hello.jar HelloWorld.class,回车后去你的C盘看看,多了什么,没错hello.jar 。
jar file和executable jar file -回复
jar file和executable jar file -回复什么是Jar文件和可执行Jar文件?Jar文件是Java Archive(Java归档)文件的简称,它是一种用于打包Java 类、资源文件和元数据的文件格式。
与将Java代码编译为单个可执行文件(如Windows的.exe文件)不同,Jar文件可以包含多个类和资源文件,并且可以在Java虚拟机(JVM)上运行。
它可以被认为是一种将相关的Java文件组合在一起以便于分发和部署的方式。
可执行Jar文件是一种特殊的Jar文件,它包含了可以直接在命令行上执行的Java应用程序。
通常,这些可执行Jar文件具有一个主类(Main class),当执行JVM时,它将被调用以启动应用程序。
那么,如何创建一个Jar文件和可执行Jar文件呢?以下是一步一步的过程:第1步:编写Java代码首先,在创建Jar文件之前,您需要编写Java代码。
这些代码可以包含一个或多个类文件,以及任何您的应用程序所需的其他资源文件。
确保在Java代码编写过程中,您的代码结构遵循最佳实践原则,以及适用于面向对象和可维护性的设计模式。
第2步:编译Java代码使用Java编译器(例如javac命令)编译您的Java代码。
确保您的代码不包含任何错误或警告,并且可以成功编译。
第3步:创建清单文件清单文件(Manifest file)是一个包含元数据的文本文件,用于描述Jar 文件的属性和配置信息。
清单文件包含在Jar文件中,可以指定Jar文件中的主类,以及其他必要的依赖关系和配置项。
您可以使用文本编辑器创建一个清单文件,并将其保存为名为Manifest.mf的文件。
在清单文件中,您需要使用特定的格式指定主类,例如:Main-Class: com.example.MainApp请注意,这里的"com.example.MainApp"应该是您应用程序的主类的完整名称。
java如何把源码导出为jar包,以及如何使用导出的jar包
java如何把源码导出为jar包,以及如何使⽤导出的jar包1.新建java project,编写源码如下:package baseTest;import java.awt.*;import java.awt.geom.*;import javax.swing.*;public class DrawLineFrame {public static void main (String [] args){JFrame window = new DrawFrame();window.setTitle("绘制图形");window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);window.setBounds(100,100,600,400);window.setVisible(true);}}//窗⼝类class DrawFrame extends JFrame{/****/private static final long serialVersionUID = 1L;public DrawFrame(){add(new DrawComponent());pack();}}//图形类class DrawComponent extends JComponent{/****/private static final long serialVersionUID = 1L;private static final int DEAFULT_WIDTH = 400;private static final int DEFAULT_HEIGHT = 400;public void paintComponent(Graphics g){Graphics2D g2 = (Graphics2D)g;//绘制矩形double leftx = 100;double topy = 100;double width = 200;double height = 150;Rectangle2D rect = new Rectangle2D.Double(leftx,topy ,width,height);g2.draw(rect);//绘制椭圆Ellipse2D ellipse = new Ellipse2D.Double();ellipse.setFrame(rect);g2.draw(ellipse);//绘制直线g2.draw(new Line2D.Double(leftx,topy,leftx + width ,topy + height));//画正圆double centerx = rect.getCenterX();double centery = rect.getCenterY();double radius = 150;Ellipse2D circle = new Ellipse2D.Double();circle.setFrameFromCenter(centerx, centery,centerx+radius,centery+radius);g2.draw(circle);}}2.运⾏,run as application,如果没有什么错误,导出jar包。
java项目打包成jar包和war包有什么区别
java项目打包成jar包和war包有什么区别在Java中,将项目打包成JAR(Java Archive)包和WAR(Web Archive)包是常见的部署方式。
这两种包的主要区别在于它们的用途和部署环境。
1. JAR包(Java Archive):JAR包是一种用于打包Java类、资源文件和库文件的归档文件格式。
JAR包主要用于打包和分发独立的Java应用程序、Java库和组件。
JAR包可以包含Java代码、字节码、配置文件、资源文件和其他依赖的类库文件。
JAR包可以通过Java虚拟机(JVM)直接执行,因此适用于命令行工具、桌面应用程序和独立的Java应用。
2. WAR包(Web Archive):WAR包是一种用于打包和分发Web应用程序的归档文件格式。
WAR包主要用于部署Java Web应用程序,例如基于Java的Web应用框架(如Java Servlet、JavaServer Pages(JSP)和JavaServer Faces (JSF))。
WAR包可以包含Web应用程序的所有内容,包括Java类、JSP页面、HTML、CSS、JavaScript、配置文件、静态资源(图像、样式表等)以及依赖的类库文件。
WAR包可以部署到Java Web服务器(如Apache Tomcat、Jetty、WebLogic和WebSphere)中,以提供Web应用程序的服务。
总结:JAR包主要用于独立的Java应用程序和库的分发,而WAR包主要用于Java Web应用程序的部署。
选择JAR包还是WAR包取决于你的项目类型和部署需求。
如果你开发的是一个独立的Java应用程序,你可以将其打包为JAR包。
如果你开发的是一个Java Web应用程序,你应该将其打包为WAR包,并将其部署到Java Web服务器中。
Java命令行下Jar包打包小结
Java命令⾏下Jar包打包⼩结jar包打包实现jar包打包可以使⽤jar指令实现打包,在命令⾏中输⼊jar可以查看jar指令的内容从最后显⽰的两个⽰例看出存在两种打包的⽅法,两者的区别就是是否使⽤⾃⼰定义的MANIFEST清单⽂件。
第⼀个⽰例没有使⽤MANIFEST⽂件进⾏打包,所以最终⽣成的jar包中MANIFEST⽂件为默认⽂件,这种⽅式适⽤于⽐较简单的jar包结构,不存在其他jar包依赖以及⽣成的jar包不需要可执⾏。
这种⽅式⽣成的jar包不能使⽤java -jar XXX.jar命令执⾏,因为MANIFEST⽂件中未指定程序⼊⼝。
⽽第⼆个实例是⽐较常⽤的打包⽅式,即是使⽤⾃定义的MANIFEST⽂件参与打包,这样能够实现往包中添加依赖,并且可以指定程序⼊⼝,实现java -jar XXX.jar直接运⾏jar包。
第⼀种简单的打包⽅式最简单的就是在当前⽂件夹下将编译的class字节码⽂件进⾏打包输出。
⽰例如下:编写三个java⽂件,test1.java test2.java 以及Main.javapublic class test1{public static void main(String[] args){}public void display(){System.out.println("this is class test1");}}以及test2.java ⽂件public class test2{public static void main(String[] args){}public void display(){System.out.println("this is class test2");}}Main.javapublic class Main{public static void main(String[] args){for(String a:args){System.out.println("给定的参数"+a);}test1 t1 = new test1();t1.display();test2 t2 = new test2();t2.display();}}命令⾏下将这三个⽂件进⾏编译,使⽤javac命令实现编译。
(原创)java程序打包jre以及制作安装包
3. 再次运行这个 jar 文件,发现已经包含了图片等文件
4.我们肯定不能让用户这样去运行我们的程序,所以必须要转成可以双击运行的方式。
四、将 jar 文件转换为可以直接双击运行的 exe 文件
1. 将 jar 文件转为 exe 文件有一个很好的软件叫做
/zh/jar2exe/free.htm 我们下载绿色版本
如图
双击 Kejian.exe,看一下效果:
16.虽然程序已经完成,但是我们不可能会给用户一个文件夹,然后让用户复制,复制好以
后双击 exe 去运行这个程序,所以接下来我们还要制作安装程序包。
五、制作程序安装包
1. 制作安装包需要的软件名字叫做 件管家搜索下载,如图:
idea打包java项目生成jar 原理-概述说明以及解释
idea打包java项目生成jar 原理-概述说明以及解释1.引言1.1 概述在Java开发中,项目的打包是必不可少的环节。
打包后的项目可以方便地部署和传输,使得程序在不同的环境中能够运行。
而JAR(Java Archive)文件则是一种常见的打包格式,它将Java项目的所有源代码、资源文件和依赖库等打包在一起,并且可以被Java虚拟机(JVM)识别和执行。
JAR打包对于Java项目的部署和运行起到了至关重要的作用。
在打包过程中,所有的源代码、配置文件、第三方库以及其他所需的资源文件都会被打包成一个可执行的JAR文件。
这个JAR文件可以被轻松地传输、备份和部署到其他环境中。
了解JAR打包的原理对于Java开发人员来说是非常重要的。
它可以帮助我们更好地理解项目的结构和组成,并且能够正确地配置和优化JAR 文件,以满足项目的需求和性能要求。
另外,掌握JAR打包的原理还有助于我们更好地理解Java的类加载机制,从而能够更好地调试和优化项目的运行效率。
本文将从概念和背景开始,介绍Java项目打包成JAR的原理。
我们将探讨JAR文件的组成和结构,以及JAR打包过程中的一些关键步骤和技巧。
最后,我们将总结JAR打包的重要性,并强调了解JAR打包原理的好处。
通过阅读本文,希望读者能够对Java项目的打包有更深入的了解,并能够在实际开发中灵活应用JAR打包技术。
1.2文章结构文章结构部分的内容主要是对本篇长文的章节和内容进行概括和介绍。
以下是文章结构部分的内容:1.2 文章结构本文主要围绕着"idea打包Java项目生成JAR"的原理展开讨论,旨在帮助读者了解Java项目打包成JAR文件的概念、背景和原理。
为了使读者更好地理解,本文按照以下章节进行组织和阐述。
第一部分是引言部分,包括概述、文章结构和目的。
在本部分,我们将对整篇文章进行简要回顾,并明确文章的目的和意义,以便读者能够更好地理解和把握文章内容的整体框架。
在Eclipse中将Java项目打包为jar
在Eclipse中将Java项目打包为jar方法一:如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自己自定义配置文件MANIFEST.MF ,内容示例如下:Manifest-Version: 1.0Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jarlib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jarMain-Class: src.YourMainClassName其中的Class-Paht就指定了外来jar包的位置。
请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。
否则将会出现Exception in thread "main" ng.NoClassDefFoundError的错误。
最后介绍一下使用Eclipse制作jar包的过程吧:1. 首先在Eclipse中打开项目,右键点击项目,选择“Export”;2. 选择Java/JAR file,Next;3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;这里有几个选项:∙Export generated class files and resources 表示只导出生成的.class 文件和其他资源文件∙Export all output folders for checked projects 表示导出选中项目的所有文件夹∙Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了∙Export refactorings for checked projects 把一些重构的信息文件也包含进去在Select the export destination中选择导出的jar的路径,Next4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class 文件。
java打包成jar文件run指令
java 打包成jar文件run指令000前段时间由于研究原来广为传播的String和StringBuffer的性能问题,自己做了几个小实验并得出一些结论,但是从网友的反应来看那个研究并没有起到应有的目的,而且网友也很中肯的提出了自己的意见并对实验中的一些内容指出了其缺陷,针对他们的反应我又反编译了代码来进行对比,但是几位网友仍然不是很信服,而且上次实验的结果和反编译得到的结论并不能完全吻合,因为反编译代码的对比基本上是基于语句的多少,因此这个这个对比也确实不能使人信服,但是这给我的下一步行动指引了方向:研究JVM指令和JVM结构,在对反编译后的代码有完全的理解才能给出可能使人信服的结论。
本文以及以后将要写的一些文章就是我研究JVM规范的一些心得,我希望在和大家共同理解的基础上进行我们下一轮的深入研究。
好,闲话少说,开始我们的正文。
JVM执行的对象就是大家非常熟悉的class文件,我们也称为类文件,JVM规范定义的这个编译完成的代码文件(虽然并非强制要求是实际的文件)的格式非常的详实,但是我们这里只说一些宏观的内容,以后有机会再研究细节的内容吧。
JVM要求的类文件的格式是和硬件和操作系统无关的一种二进制格式,它精确定义了类或者接口的表示,它甚至包含了字节顺序这样的细节,而字节顺序在特定平台的目标文件格式中一般都是固定的,不会进行说明。
JVM所支持的数据类型和Java语言规范中定义的几乎一样,请注意是几乎一样!也就是原始类型和引用类型,他们可以被存储在变量表中,也可以作为参数传递、被方法返回,更通常的就是成为操作的对象。
为什么和Java语言规范中定义的不完全一样呢?因为JVM中有一种Java语言所没有的原始类型:返回地址类型(returnAddress type)。
该类型是jsr, ret以及jsr_w指令需要使用到的,它的值是JVM指令的操作码的指针,并且它的值是不能被运行中的程序所修改的。
另外需要提到的就是布尔类型的值,虽然在Java语言中它是完全独立的值,但是在JVM中只提供了对它的有限支持,表现在:没有单独的操作布尔类型的指令,源代码中的布尔类型的操作在编译以后是作为int类型的值进行操作的。
java打包成可执行的jar或者exe的详细步骤
java打包成可执⾏的jar或者exe的详细步骤下⾯介绍过程:在Eclipse下,程序能够正常运⾏.⽅法1:直接拷贝其它能运⾏的JAR⽂件中的MANIFEST.MF进⾏修改⽅法2:利⽤IDE⼯具,如Eclipse在⽣成JAR⽂件时⾃动⽣成MANIFEST.MF内容如下:复制代码代码如下:Manifest-Version: 1.0Main-Class: manager.ui.MainFrameClass-Path: ./lib/spring.jar ./lib/hibernate.jar ./lib/derby.jarSplashScreen-Imager: manager/resources/images/splash.jpg说明:Manifest-Version -指定清单⽂件的版本号Main-Class -指定程序运⾏的⼊⼝类。
注意:类名后不要加class扩展名Class-Path -指定⽀持库的路径。
“.”指程序运⾏⽬录,即导出的JAR包所在⽬录。
程序运⾏时依据Class-Path项的设置路径来查找⽀持库。
每⼀个⽀持库之间⽤空格隔开。
在这⾥使⽤了hibernate,spring,derby.注意:1.如果Java应⽤程序⽤到了⼀些Eclipse包,那么就必须将这些包也复制到程序运⾏⽬录,设置到Class-Path,否则程序将⽆法运⾏.引⽤了⼀些外部组件也需要如此设置,如hibernate,spring,derby.2. 除了⼊⼝类的包名和类名之外,其他设置项都不分⼤⼩写,⽐如:Class-Path写成class-path或CLASS-PATH也可以,swt.jar写成SWT.JAR也⾏。
3.类名后不要加class扩展名4.每⼀⾏的':'后都有⼀个空格,如Class-Path:<空格>./lib/spring.jar5.Class-Path中.引⼊的JAR⽂件每⾏不得超过19个,否则会报错.但在让⼈意外的是每⾏只有前9个有效,故将所有同类型的JAR ⽂件做成⼀个JAR⽂件.如我这⾥的spring.jar,hibernate.jar,derby.jar都是同类JAR⽂件的组合.在spring的 'sessionFactory' bean的配置中则要这样写(与程序中ClassPathXmlApplicationContext对应)复制代码代码如下:manager/entity/MyFile.hbm.xmlmanager/entity/FileType.hbm.xml...1.右键单击项⽬名,在弹出菜单中选择“Export”。
如何将一个java程序或项目打包成jar与exe文件
一、先将一个java 程序或项目打包成jar 文件。
1.先在Myeclipses 下添加一个插件 fat jar (1)先把压缩文件解压,将net.sf.fjep.fatjar_0.0.31.jar 放置在你的Myeclipse 的安装目录下。
此为我的Myeclipse 安装目录路径。
如图所示(2)关闭你的Myeclipse ,重新启动。
(3)右键点击你的项目工程名,查看是否有一个 +buile fat jar 选项。
若有,表明完成上面两部,点击next点击finish,将在你指定位置,生成一个可执行jar文件。
查看是否正常。
可能出现的问题:1.所引入的数据库jar包,导入不正确,无法连接数据库。
2.项目中可能添加的图片,在Jar文件中不能正常显示。
解决第二个问题。
如图所示我的项目内容1.在src目录下新建一个Folder 目录文件,将你之前的图片放置进去。
2.修改代码部分:将之前的代码修改为如上所示写法。
整体修改完毕后,重新对项目进行打包操作。
并做测试检查二、将一个可运行的jar文件做成exe文件。
1.先安装exe4j软件。
2.运行软件。
注册窗体进行软件注册用户名,公司名称,随便填写。
注册完毕,回到主窗体。
Next直接点Next第二步我们选择“JAR in EXE mode” 就是选择我们已经有制作好的jar文件。
我的是“桌面\project\”. NEXT由于我的演示程序是图形的,所以选第一个,如果你的程序是控制台的,则选择第二个,Executable name写你将要生成的.exe文件的名字,Icon File可以选择生成文件的图标。
第5步,先别管上面的,先在下面单击绿色的“+”号。
在弹出的窗口中点Archive,然后找到起初已经做好的PetDemo_fat.jar文件,"OK"后返回。
在下面的Class Path里就出现jar文件路径后,再在上面Main Class栏内点击找到main所在的类。
java -jar 执行 方法
Java是一种广泛应用的编程语言,其灵活性和强大的功能使其在软件开发领域得到了广泛的运用。
在Java编程中,我们常常会用到java -jar命令来执行一些特定的方法或程序。
本文将从执行方法的基本语法、常见问题及解决方法等方面进行介绍,以帮助读者更好地理解和应用java -jar命令。
一、java -jar执行方法的基本语法在Java编程中,我们可以使用java -jar命令来执行一个打包成jar包的程序或方法。
其基本语法如下:java -jar <jar文件名> [参数]其中,<jar文件名>表示要执行的jar包文件名,参数是可选的,可以在执行方法时传入给程序。
在执行java -jar命令时,需要在命令行中切换到jar包所在的目录,然后输入以上命令即可执行指定的程序或方法。
二、java -jar执行方法的常见问题及解决方法在使用java -jar命令执行方法时,有时会遇到一些常见的问题,下面将介绍一些常见问题及其解决方法:1. 无法找到或加载主类当执行java -jar命令时,如果出现"无法找到或加载主类"的错误提示,这通常是由于指定的jar包中的MANIFEST文件中未正确指定主类名所致。
解决方法是打开MANIFEST文件并检查M本人n-Class项是否正确指定了主类名,确保没有拼写错误。
2. 缺少依赖库有时在执行java -jar命令时,会出现"找不到类xxx"的错误提示,这通常是由于jar包所需的依赖库未正确引入或缺失所致。
解决方法是在编译jar包时将所需的依赖库一起打包进去,或者将依赖库放在与jar包相同的目录下。
3. 参数传递错误当执行java -jar命令需要传递参数给程序时,有时会因参数传递错误而导致程序出现异常或错误。
解决方法是检查传递的参数是否符合程序要求,并且要注意参数的顺序和格式是否正确。
三、java -jar执行方法的注意事项在使用java -jar命令执行方法时,还需要注意一些事项,以确保程序能够正常执行:1. 确保jar包正确打包在执行java -jar命令时,需要确保jar包已经正确打包,并且MANIFEST文件中正确指定了主类名和依赖库。
Java项目打包成jar文件的两种方法
Java项⽬打包成jar⽂件的两种⽅法⽅案⼀:⽤Eclipse⾃带的Export功能步骤1:准备主清单⽂件 “MANIFEST.MF”,由于是打包引⽤了第三⽅jar包的Java项⽬,故需要⾃定义配置⽂件MANIFEST.MF,在该项⽬下建⽴⽂件MANIFEST.MF,内容如下:Manifest-Version: 1.0Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jarMain-Class: main.KillCheatFans第⼀⾏是MAINIFEST的版本,第⼆⾏Class-Path就指定了外来jar包的位置,第三⾏指定我们要执⾏的MAIN java⽂件。
这⾥要注意⼏点:1、Class-Path: 和Main-Class: 后边都有⼀个空格,必须加上,否则会打包失败,错误提⽰为:Invalid header field;2、假设我们的项⽬打包后为KillCheatFans.jar,那么按照上⾯的定义,应该在 KillCheatFans.jar的同层⽬录下建⽴⼀个lib⽂件夹(即lib⽂件和打包的jar⽂件在同⼀个⽬录下),并将相关的jar包放在⾥⾯。
否则将会出现“Exception in thread "main" ng.NoClassDefFoundError”的错误;3、Main-Class后⾯是类的全地址,⽐如你的主⽂件是KillCheatFans.java,⽂件⾥打包为package com.main; 那么这⾥就写com.main.KillCheatFans,不要加.java后缀,主⽂件地址写错将会出现“找不到或⽆法加载主类”的错误;4、写完Main-Class后⼀定要回车(即最后⼀⾏是空⽩⾏),让光标到下⼀⾏,这样你⽣成的jar包才能找到你的主class去运⾏,否则将会出现“jar中没有主清单属性”的错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档 存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
7,如果你安装了JRE,你的jar文件应该关联在javaw –jar上。
如果你的jar文件没有关联javaw –jar了,可以通过以下方法重新关联。
1)在资源窗口—工具—文件夹选项—文件类型中,新建jar的关联。
2)创建一个.bat文件,其中的命令是:javaw -jar %1 或者java -jar %1
这样,无需关联jar文件,就可以执行jar文件。
如果是源文件夹,就会输出生成的.class文件。
5)选中:压缩Jar文件的内容。
6)选中:不警告就覆盖已存在的文件
7)选择一个输出jar文件的目的地。
4,使用已存在的manifest文件。
5,MANIFEST.MF 文件如下:
Manifest-Version: 1.0
注意: calDemo代表主类名(即要运行的类名,只能有一个,不要文件扩展名)
Main与Class中间不是下划线,而是短横线
Main-Class:与calDemo中间必须要有空格
Main-Class: calDemo之后必须要回车
文件中还可以加入一些其他信息如:(先不要加,以免出错)
Main-Class: Test
Class-Path: lib/OXmlEd1.11-nolib-bin.jar lib/dom4j-1.6.1.jar lib/commons-logging-1.0.4.jar lib/log4j-1.2.8.jar
如果让Eclipse为我们生成,不会生成Class-Path部分的描述。所以,我们需要再加上Class-Path描述!
6,现在,制作完成的jar文件就是可执行的。
我们在命令行中执行java –jar AAA.jar 就可以看到该程序被成功执行了。
javaw –jar AAA.jar 也可以执行该jar包。
使用java.exe将会出现命令行窗口。
使用javaw.exe执行,不会出现命令行窗口,所有System.out.print这样的输出都是看不到的。
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。
示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
最佳答案eclipse有相关操作
------------------------------------------------------------------------
1,右击Eclipse项目,点击Export。
2,选中java-jar文件。
3,选中要发布为jar文件的项目。
--------------------------------------------
Manifest-Version: 1.0
Created-By: 1.4.1_02 (Sun Microsystems Inc.)
--------------------------------------------
然后用jar命令生成可执行的jar文件,例如:
(执行该命令前先要转到该目录下 D:/chat/ )
jar cvfm cal.jar manifest.mf *.class
jar用法:(仅供参考,初学者可跳过这部分内容)
jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
1)选中源文件夹,库文件夹,配置文件文件夹。
2)不要选中Eclipse项目的文件和其他不需要的文件。
3)选中:Export all output folders for checked projects
输出所有选中的文件夹。
4)选中:Export java source files and resources
java打包成jar[转载]
关键字: java 打包 jar 可执行
若要生成一个名为 cal.jar 的可执行jar文件:(文件名可以是任意合法名字)
(这是我认为简单实用的一种方法,还有很多别的方法在此就不介绍了)
第一 把程序生成的所有字节码文件(即.class文件)放在同一个目录下(如:D:/chat/).
3)把.jar文件关联到上面这样的.bat文件中。
这样,你双击.jar文件时,就会立刻执行该java程序。
%1 表示第一个参数,也就是你点击的jar文件的文件全名。
8,你也可以为每一个可执行的jar文件创建一个.bat文件,其中的命令是javaw -jar AAA.jar 或者java –jar AAA.jar等文件。
第二 在该目录下新建一个manifest.mf文件,文件内容格式如下(划线中内容):
manifest.mf文件中的格式:
--------------------------------
Main-Class: calDemo
--------------------------------
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .