命令行下编译java并生成jar包(1)

合集下载

SpringBootjava-jar命令行启动原理解析

SpringBootjava-jar命令行启动原理解析

SpringBootjava-jar命令⾏启动原理解析在spring boot⾥,很吸引⼈的⼀个特性是可以直接把应⽤打包成为⼀个jar/war,然后这个jar/war是可以直接启动的,⽽不需要另外配置⼀个Web Server。

那么spring boot如何启动的呢?今天我们就来⼀起探究⼀下它的原理。

⾸先我们来创建⼀个基本的spring boot⼯程来帮助我们分析,本次spring boot版本为 2.2.5.RELEASE。

// SpringBootDemo.java@SpringBootApplicationpublic class SpringBootDemo {public static void main(String[] args) {SpringApplication.run(SpringBootDemo.class);}}下⾯是pom依赖:<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><finalName>springboot-demo</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>创建完⼯程后,执⾏maven的打包命令,会⽣成两个jar⽂件:springboot-demo.jarspringboot-demo.jar.original其中springboot-demo.jar.original是默认的maven-jar-plugin⽣成的包。

ECLIPSE将引用了第三方JAR包的JAVA项目打包成JAR文件的两种方法

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包的几种方式详解

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。

java一键部署jar包和war包

java一键部署jar包和war包

java⼀键部署jar包和war包⽬录java ⼀键部署 jar 包和 war 包⼀、创建打包命令 gateway-package.bat⼆、创建启动⽂件 gateway.xml三、⼀键打包并部署脚本 gateway-deploy.bat ⽂件内容四、双击打包部署 bat ⽂件 gateway-deploy.bat五、执⾏ vue 打包并且上传部署六、安装 7z 压缩⼯具并配置系统环境变量七、创建上传部署⽂件 webConfig.xml九、双击执⾏部署 vue-deploy.batjava ⼀键部署 jar 包和 war 包⼀、创建打包命令 gateway-package.bat@echo offcd /d "F:\uincall-cloud-service\uin-api-alibaba\gateway\"gradle build bootJar@echo off 关闭命令回显,当不需要 dos 命令⼀⾏⼀⾏在命令窗⼝中显⽰的时候使⽤,@echo on 显⽰命令回显例如:当为 @echo on 会显⽰执⾏的命令@echo ontitle Acolor 01echo %date%pause当为 @echo off 并不会执⾏ title A 和 color 01 命令echo 是输⼊提⽰信息pause 是暂停执⾏执⾏命令,按下任意键后会继续执⾏,pause 会提⽰“请按任意键继续...”当执⾏的 bat 不在项⽬⽬录时,需要进⼊到项⽬⽬录执⾏打包命令,需要使⽤ /d 命令,后⾯是进⼊的⽬录gradle build bootJar 是执⾏ gradle 打包命令,如果是 maven ⼯程则使⽤ maven 打包命令,例如:mvn clean package -Dmaven.test.skip=true创建项⽬打包并执⾏到上传到服务器,并且结束之前项⽬部署的进程,并启动新的部署命令⼆、创建启动⽂件 gateway.xml<?xml version="1.0" encoding="utf-8" ?><config><threadPoolSize default="5">3</threadPoolSize><!--线程池⼤⼩,如果上传服务器多的话可以调⼤,默认5个线程--><servers><server><!-- 服务器 ip --><host>1.0.0.0</host><!-- 服务器⽤户名 --><userName>root</userName><!-- 服务器密码 --><password>password</password><!-- 上传的⽂件,可以有多个 --><uploads><upload><!-- 上传的包路径 --><local>F:\uincall-cloud-service\uin-api-alibaba\gateway\build\libs\gateway-1.0.0.jar</local><!-- 上传到服务器的路径 --><remote>/root/data/callcenter</remote></upload></uploads><!-- 需要执⾏的命令,可以有多个 --><commands><!-- 结束之前部署的进程 --><command><![CDATA[source /etc/profile; ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9]]></command><!-- 重新部署新上传的包 --><command><![CDATA[source /etc/profile; nohup java -jar /root/data/callcenter/gateway-1.0.0.jar >> /root/data/callcenter/gateway.log 2>&1 &]]></command> </commands></server></servers></config>ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9 查询正在部署的项⽬进⾏并且杀死ps -ef | grep gateway-1.0.0.jar 是查询进程grep -v grep 过滤包含 grep 的进程⾏,然后再杀掉剩下的进程awk '{print $2}' 提取找到的进程⾏记录中第⼆列的参数,也就是正在执⾏项⽬的进程号xargs kill -9 把前⾯的参数都传递给后⾯的命令 kill -9三、⼀键打包并部署脚本 gateway-deploy.bat ⽂件内容call gateway-package.batjava -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\gateway.xmlpausecall gateway-package.bat 是执⾏上⾯的项⽬打包的 gateway-package.bat ⽂件,call 作⽤是可以在当前批处理执⾏前调⽤另⼀个批处理⽂件,这⾥的意思就是先打包在上传⾄服务器并且部署java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar 可执⾏⽂件 jar 包,负责执⾏上传部署指令F:\uincall-cloud-service\test-deploy\gateway.xml ,上传部署的命令都写在 gateway.xml 中注意:这⾥要执⾏的⽂件都需使⽤绝对路径,哪怕在⼀个⽂件加⾥四、双击打包部署 bat ⽂件 gateway-deploy.bat成功上传并且部署成功!!五、执⾏ vue 打包并且上传部署创建 vue 打包 bat ⽂件 vue-package.bat@echo offecho 开始打包......cd /d "F:\uincall-cloud-service\\"npm run buildecho 打包完毕 successF:\uincall-cloud-service\" 是⼯程根⽬录六、安装 7z 压缩⼯具并配置系统环境变量创建 7z 压缩 vue 打包后的 bat ⽂件 zip.bat@echo offset CALLCENTER_PATH=F:\uincall-cloud-service\\dist\*set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tarecho 开始压缩 callcenter vue7z a -r %ZIP_PATH% %CALLCENTER_PATH%set CALLCENTER_PATH=F:\uincall-cloud-service\\dist* vue 打包后的⽂件夹⽬录,打包后的⽂件都在此⽬录下set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tar 设置打包后的⽂件名和格式7z a -r %ZIP_PATH% %CALLCENTER_PATH%,7z:使⽤ 7z 压缩,a:是添加⽂件到压缩⽂件中,-r:包括⼦⽬录,其他是引⽤上⾯定义的变量,也就是打包后的格式和需要打包的⽂件所在⽬录七、创建上传部署⽂件 webConfig.xml<config><threadPoolSize default="5">3</threadPoolSize><!--线程池⼤⼩,如果上传服务器多的话可以调⼤,默认5个线程--><servers><server><!-- 服务器 ip --><host>1.0.0.0</host><!-- 服务器⽤户名 --><userName>root</userName><!-- 服务器密码 --><password>password</password><!-- 上传的⽂件,可以有多个 --><uploads><upload><!-- 上传的⽂件 --><local>F:\uincall-cloud-service\deploy\callcenter.tar</local><!-- 上传到服务器的⽬录 --><remote>/root/data/callcenter/web</remote></upload></uploads><!-- 上传成功后执⾏的命令 --><commands><!-- 添加 777 权限 --><command><![CDATA[source /etc/profile; chmod 777 /root/data/callcenter/web/callcenter.tar]]></command><!-- 解压 -C 表⽰创建新的档案⽂件,会解压到新的⽬录,默认解压到根⽬录 / --><command><![CDATA[source /etc/profile; tar -xvf /root/data/callcenter/web/callcenter.tar -C /root/data/callcenter/web]]></command><!-- 解压完删除压缩⽂件 --><command><![CDATA[source /etc/profile; rm -rf /root/data/callcenter/web/callcenter.tar]]></command><!-- 刷新 nginx --><command><![CDATA[source /etc/profile; nginx -s reload]]></command></commands></server></servers></config>创建 vue 打包部署 bat ⽂件 vue-deploy.bat,分别执⾏上⾯创建打包 vue-package.bat 压缩 zip.bat 上传部署命令webConfig.cmlcall F:\uincall-cloud-service\test-deploy\vue-package.batcall F:\uincall-cloud-service\test-deploy\zip.batjava -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\webConfig.xmlecho 上传并解压完毕pause九、双击执⾏部署 vue-deploy.bat成功上传并解压以上就是java ⼀键部署 jar 包和 war 包的详细内容,更多关于java 部署 jar 包 war 包的资料请关注其它相关⽂章!,希望⼤家以后多多⽀持!。

Java打包成jar文件,以及将jar文件导出为exe文件方法汇总

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包,以及如何使用导出的jar包

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编译

java -jar编译

java -jar编译Java是一种广泛应用于开发各种应用程序的编程语言,它具有跨平台性和面向对象的特性。

编译是将源代码转换为可执行代码的过程,而Java的编译工具是java -jar命令。

本文将围绕这个命令展开,介绍它的用法、作用以及一些注意事项。

我们来了解一下java -jar命令的基本用法。

在命令行中输入java -jar,后面跟着的是一个可执行的jar文件的路径。

这样,Java虚拟机就会加载并运行这个jar文件中的主类。

通过这个命令,我们可以方便地运行打包好的Java应用程序。

那么,为什么要使用java -jar命令来编译Java程序呢?这是因为在Java中,源代码需要通过编译器将其转换为字节码文件(.class 文件),然后再由Java虚拟机执行。

而对于已经打包成jar文件的Java应用程序,我们可以直接使用java -jar命令来运行,无需再进行编译过程,这样可以简化应用程序的部署和运行。

在使用java -jar命令编译Java程序时,有一些需要注意的地方。

首先,需要确保系统已经安装了Java运行时环境(JRE),否则无法运行Java应用程序。

其次,需要保证jar文件中包含了一个可执行的主类,并且在MANIFEST.MF文件中指定了这个主类。

另外,如果jar文件中依赖了其他的jar文件,需要将这些依赖的jar文件一同放入classpath中,否则会导致运行时错误。

除了使用java -jar命令来运行Java应用程序,我们还可以使用它来执行其他操作。

例如,可以使用java -jar命令来解压缩jar文件,查看其中的内容。

可以使用java -jar命令来创建可执行的jar文件,将多个类文件打包成一个jar文件,方便部署和传播。

此外,还可以使用java -jar命令来签名jar文件,确保其来源可靠性。

在实际应用中,我们可以结合其他命令和工具来使用java -jar命令,以实现更复杂的功能。

Java命令行下Jar包打包小结

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基础试题及其答案 (1)

Java基础试题及其答案 (1)

Java试题1) java程序中,main方法的格式正确的是()。

(选择一项)a)static void main(String[] args)b)public void main(String[] args)c)public static void main(String[]s)d)public static void main(String[] args)2)给定java代码,如下:public byte count(byte b1,byte b2){return______;}要使用这段代码能够编译成功,横线处可以填入()。

(选择一项)a)(byte) (b1-b2)b)(byte) b1-b2c) b1-b2d) (byte) b1/b23)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。

(选择一项)a)protectedb)privatec)publicd)friendly4)在Java中,下列()语句不能通过编译。

(选择一项)a) String s= “join”+ “was”+ “here”;b) String s= “join”+3; “”+new Person() toString()c) int a= 3+5d) float f=5+5.5; 5.5 double 5.5f float6)给定java代码如下,运行时,会产生()类型的异常。

(选择一项)String s=null;s.concat(“abc”);a)ArithmeticExceptionb)NullPointerExceptionc)IOExceptiond)EOFException 已到文件尾,再读取抛出7) 在java中,()对象可以使用键/值的形式保存数据。

(选择一项)a)ArrayList List 有序可重复b) HashSet Set 无序不可重复同一对象是重复的c) HashMap Map(key/value)重复定义:hashCode、equals(业务)d) LinkedList List8)给定如下java代码,编译运行之后,将会输出()。

在Eclipse中将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 命令行编译

java 命令行编译

java 命令行编译一、Java命令行编译简介Java是一种跨平台的编程语言,可以在不同的操作系统上运行。

Java 程序需要被编译成字节码才能在Java虚拟机上运行。

Java命令行编译是指在命令行下使用javac命令将Java源代码编译成字节码文件(.class文件)的过程。

二、准备工作1. 安装JDK在进行Java命令行编译之前,需要先安装JDK(Java Development Kit)。

JDK包含了开发和运行Java程序所需的工具和库。

可以从Oracle官网下载并安装最新版本的JDK。

2. 配置环境变量安装完JDK后,需要配置环境变量,以便在任何位置都可以使用javac和java命令。

具体步骤如下:(1)找到安装目录下bin文件夹的路径。

(2)将该路径添加到系统环境变量中的Path中。

3. 创建项目目录和源代码文件创建一个项目目录,并在该目录下创建一个名为HelloWorld.java的源代码文件。

HelloWorld.java包含以下内容:```public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```三、使用javac命令进行编译1. 打开命令提示符或终端窗口打开命令提示符或终端窗口,进入到项目目录下。

2. 编译源代码文件在命令提示符或终端窗口中输入以下命令:```javac HelloWorld.java```该命令将编译HelloWorld.java文件,并生成一个名为HelloWorld.class的字节码文件。

3. 运行程序在命令提示符或终端窗口中输入以下命令:```java HelloWorld```该命令将运行HelloWorld程序,并输出“Hello, World!”。

四、使用包管理工具进行编译除了使用javac命令进行编译外,还可以使用包管理工具进行编译。

jar打包命令详解

jar打包命令详解

-v 生成详细报告并打印到标准输出
-f 指定 JAR 文件名,通常这个参数是必须的
-m 指定需要包含的 MANIFEST 清单文件
-0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快
-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
该命令没有执行过程的显示,执行结果是在当前目录生成了 test.jar 文件。如果当前目录已经存在 test.jar,那么该文件将被覆盖。
2) jar cvf test.jar test
该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:
标明清单(manifest)
Main-Class: 可执行主类全名(包含包名)
例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:
Main-Class: test.Test <回车>
3. jar 命令详解
jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUM 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。
需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样。而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包之前可以使用 java <类名> 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH 正确的情况下)。

cmd编译运行java程序的方法

cmd编译运行java程序的方法

cmd编译运行java程序的方法在Windows的命令提示符(CMD)中编译和运行Java程序需要以下步骤:1. 安装Java开发工具包(JDK): 首先,你需要在你的计算机上安装JDK。

你可以从Oracle的官方网站下载并安装。

2. 设置环境变量: 安装JDK后,你需要设置环境变量。

这包括JAVA_HOME和PATH。

打开“系统属性”(右键点击“我的电脑”,然后选择“属性”,再点击“高级系统设置”)。

在“高级”选项卡下,点击“环境变量”。

在“系统变量”区域,点击“新建”,然后输入以下变量:+ 变量名:JAVA_HOME+ 变量值:你的JDK的安装路径(例如:C:\ProgramFiles\Java\_211)在“系统变量”区域找到并选择“Path”,然后点击“编辑”。

在弹出的窗口中,点击“新建”,然后输入%JAVA_HOME%\bin。

3. 打开命令提示符: 按下Win键,然后输入"cmd",然后回车,打开命令提示符。

4. 编译Java程序: 假设你有一个名为""的Java程序,你可以使用以下命令来编译它:```shelljavac```如果编译成功,那么会生成一个名为""的文件。

5. 运行Java程序: 你可以使用以下命令来运行你的程序:```shelljava HelloWorld```如果你的程序需要命令行参数,你可以这样:```shelljava HelloWorld arg1 arg2```6. 查看输出: 程序的输出会显示在命令提示符窗口中。

7. 清理编译的类文件: 如果你不再需要编译后的类文件,你可以使用以下命令来删除它们:```shelldel```这就是在Windows的命令提示符(CMD)中编译和运行Java程序的方法。

如果你在使用的过程中遇到任何问题,记得检查你的环境变量是否设置正确,以及你的JDK是否已经正确安装。

如何将一个java程序或项目打包成jar与exe文件

如何将一个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程序

如何打包JAVA程序

如何打包JAVA程序在Java开发中,打包是将一组Java文件和相关的资源文件打包成可执行的JAR或WAR文件的过程。

Java打包的目的是将程序、依赖的库和资源文件打包成一个独立的单元,方便部署和执行。

在下面的步骤中,我将介绍如何打包和部署Java程序。

1. 编写Java程序: 首先,你需要编写你的Java程序。

确保你的程序逻辑正确并且可以在本地环境中正常运行。

2. 编译Java程序: 使用Java编译器将你的Java源文件编译为字节码文件。

在命令行中执行以下命令来进行编译:```javac YourProgram.java```其中,`YourProgram.java`是你的Java源文件的名称。

3. 创建清单文件: 在打包Java程序之前,你需要创建一个清单文件(manifest)。

清单文件是一个纯文本文件,用于描述JAR文件的属性和配置信息。

在清单文件中,你需要指定程序的主类(Main-Class)和依赖的库。

创建一个名为`MANIFEST.MF`的文件,然后输入以下内容:```Manifest-Version: 1.0Main-Class: YourMainClassClass-Path: library1.jar library2.jar```其中,`YourMainClass`是你的程序的主类。

如果你的程序有依赖的第三方库,你需要在`Class-Path`属性中指定这些库的路径。

如果有多个库文件,用空格分隔。

4.创建JAR文件:使用JAR工具将编译后的字节码文件和资源文件打包成JAR文件。

在命令行中执行以下命令来打包成JAR文件:```jar cvmf MANIFEST.MF YourProgram.jar *.class resource_folder ```其中,`MANIFEST.MF`是清单文件的名称,`YourProgram.jar`是打包后的JAR文件名称,`*.class`表示所有编译后的字节码文件,`resource_folder`是你的资源文件夹的路径。

java -jar 执行 方法

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文件中正确指定了主类名和依赖库。

jar包使用

jar包使用

jar包使⽤JAR包是Java中所特有⼀种压缩⽂档,其实⼤家就可以把它理解为.zip包。

当然也是有区别的,JAR包中有⼀个META-INF\MANIFEST.MF⽂件,当你找成JAR包时,它会⾃动⽣成。

JAR包是由JDK安装⽬录\bin\jar.exe命令⽣成的,当我们安装好JDK,设置好path路径,就可以正常使⽤jar.exe命令,它会⽤lib\tool.jar⼯具包中的类。

这些细节就不⽤管它了。

⼀. jar命令选项:jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C ⽬录]⽂件名...其中{ctxu}这四个选项必须选其⼀。

[v f m e 0 M i ]是可选选项,⽂件名也是必须的。

-c 创建⼀个jar包-t 显⽰jar中的内容列表-x 解压jar包-u 添加⽂件到jar包中-f 指定jar包的⽂件名-v ⽣成详细的报造,并输出⾄标准设备-m 指定manifest.mf⽂件.(manifest.mf⽂件中可以对jar包及其中的内容作⼀些⼀设置)-0 产⽣jar包时不对其中的内容进⾏压缩处理-M 不产⽣所有⽂件的清单⽂件(Manifest.mf)。

这个参数与忽略掉-m参数的设置-i 为指定的jar⽂件创建索引⽂件-C 表⽰转到相应的⽬录下执⾏jar命令,相当于cd到那个⽬录,然后不带-C执⾏jar命令⼆. jar使⽤范例:(1)创建jar包$ jar cf hello.jar hello 利⽤test⽬录⽣成hello.jar包,如hello.jar存在,则覆盖(2)创建并显⽰打包过程$ jar cvf hello.jar hello 利⽤hello⽬录创建hello.jar包,并显⽰创建过程例:E:\>jar cvf hello.jar hello标明清单(manifest)增加:hello/(读⼊= 0) (写出= 0)(存储了 0%)增加:hello/TestServlet2.class(读⼊= 1497) (写出= 818)(压缩了 45%)增加:hello/HelloServlet.class(读⼊= 1344) (写出= 736)(压缩了 45%)增加:hello/TestServlet1.class(读⼊= 2037) (写出= 1118)(压缩了 45%)(3)显⽰jar包$ jar tvf hello.jar 查看hello.jar包的内容指定的jar包必须真实存在,否则会发⽣FileNoutFoundException。

jar包的使用方法

jar包的使用方法

jar包的使用方法一、什么是jar包在Java开发中,jar包(Java Archive)是一种用于存放Java类、资源文件和元数据的文件格式。

它是一种压缩文件,通常以.jar作为文件扩展名。

jar包可以将多个Java文件打包成一个文件,方便程序的分发和部署。

二、安装jar包安装jar包非常简单,只需要将jar包文件复制到Java项目的classpath路径下即可。

classpath是Java程序搜索类和资源文件的路径。

一般情况下,可以将jar包放置在项目的lib目录下,然后在项目的构建配置中添加jar包的依赖项。

三、使用jar包使用jar包可以通过两种方式:命令行方式和集成开发环境(IDE)方式。

1. 命令行方式在命令行中使用jar包,可以通过Java命令来执行jar包中的主类。

假设我们有一个名为example.jar的jar包,其中包含一个名为com.example.Main的主类。

可以使用以下命令执行该jar包:```java -jar example.jar```2. 集成开发环境(IDE)方式在集成开发环境中,可以通过添加jar包的依赖项来使用它。

不同的IDE有不同的配置方法,以Eclipse为例,可以按照以下步骤添加jar包的依赖项:- 右击项目,选择"Properties";- 在弹出的对话框中,选择"Java Build Path";- 在"Libraries"选项卡中,点击"Add JARS..."按钮;- 选择jar包文件并点击"OK"按钮。

四、使用示例下面以一个简单的示例来演示如何使用jar包。

假设我们有一个Java项目,其中包含两个类:Main.java和Util.java。

Util.java提供了一个用于计算两个整数之和的方法add()。

现在我们希望将这两个类打包成一个jar包,并在另一个项目中使用它。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

命令行下编译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后面的参数的不同,结果有什么变化。

紧接着我们看看如何运行我们的jar包。

在进入正题之前,你要先打开我们刚刚做好的jar包看看,多了什么呢,META-INF目录?再看看里面是什么,还有一个MANIFEST.MF文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看:Manifest-V ersion: 1.0Created-By: 1.4.2 (Sun Microsystems Inc.)就是这样。

这里我们对它进行修改,加一句:Main-Class: HelloWorld (在第三行)。

这个就是我们之前写的那个类,也就是我们的入口类。

也即,Manifest-V ersion: 1.0Created-By: 1.4.2 (Sun Microsystems Inc.)Main-Class: HelloWorld接下来,我们在命令提示符里执行:jar umf MANIFEST.MF app.jar这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新。

你不妨可以再进去看看是不是添上了Main-Class: HelloWorld这一句。

Ok,这个最后的一步了,来验证我们做的一切,在命令提示符中输入:java -jar hello.jar(执行)出现了什么,――Hi, Hello World!我们再来看看jar文件在tomcat中发布,注意:在tomcat中我们就不能再用jar这种格式,而改war格式,它是专门用于web应用的,其实整个过程下来基本上和jar是类似的:先准备我们要打包的资源。

找到存放tomcat的webapps目录,进到其中,新建一个文件夹,这里命名为hello,再进去新建WEB-INF文件夹,再进去新建classes 文件夹,此时我们也将我们唯一的servlet,HelloWorld.java放到这里,在与classes目录同级下建立一文件web.xml。

Ok,目前我们初步建立了一个简单的web应用。

这是HelloWorld.java:import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloWorld extends HttpServlet {public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {res.setContentType(‖text/html‖);PrintWriter out = res.getWriter();out.println(‖<HTML>‖);out.println(‖<HEAD><TITLE>Hello, World!</TITLE></HEAD>‖);out.println(‖<BODY>‖);out.println(‖Hello, World!‖);out.println(‖</BODY></HTML>‖);}}//end here!对它编译。

下面是web.xml:<?xml version=‖1.0″ encoding=‖ISO-8859-1″?><!DOCTYPE web-app PUBLIC‗-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN‘‗/j2ee/dtds/web-app_2_3.dtd‘><web-app><servlet><servlet-name>hello</servlet-name><servlet-class>HelloWorld</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/HelloWorld</url-pattern></servlet-mapping></web-app>开始压缩,形成war档:在命令提示符下进到先前创制的hello目录下,执行jar cvf hello.war * ,我们便得到hello.war。

将它拷贝至webapps目录下,ok,来看最后一步,打开tomcat的目录conf中的server.xml,加入:<Context path=‖/hello‖ docBase=‖hello.war‖ debug=‖0″reloadable=‖true‖/>大功告成!运行它,启动tomcat,后在浏览器中输入http://localhost:8080/hello/HelloWorld,有了吗?最后,如果你想用ant来完成以上的打包活动,下面就告诉你:对于jar来说。

在build.xml中,<target name=‖jar‖><jar destfile=‖${app_home}/hello.jar‖><fileset dir=‖${dest}‖ includes=‖**‖/><!–fileset dir=‖${dest}‖ includes=‖**/action.properties‖/–></jar></target>对于war,<war warfile=‖hello.war‖ webxml=‖./WEB-INF/web.xml‖><fileset dir=‖html‖/><lib dir=‖lib/‖><exclude name=‖oracle*.jar‖/></lib><classes dir=‖build/servlets‖><include name=‖**/*.class‖/></classes></war>好了,就这么多,希望对你有点帮助。

:)我上传了上面打过的两个包,hello.jar和hello.war。

『点击下载』『点击下载』第一rar文件对应的是hello.jar,下载后将其名改为hello.jar第二rar文件对应hello.war,下载后改为hello.war。

这是由于上传不了jar格式和war格式的文件,你只好照我上面说的去做了:)补充:############jar 基本操作:############1. 创建jar文件jar cf jar-file input-file(s)c—want to Create a JAR file.f—want the output to go to a file rather than to stdout.eg: 1)jar cf myjar.jar query_maintain_insert.htm2)jar cvf myjar.jar query_maintain_insert.htmv—Produces verbose(详细的) output.3)jar cvf myjar.jar query_maintain_insert.htm mydirectory4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory0—don‘t want the JAR file to be compressed.5)jar cmf MANIFEST.MF myjar.jar yahh.txtm—Used to include manifest information from an existing manifest file.6)jar cMf MANIFEST.MF myjar.jar yahh.txtM—the default manifest file should not be produced.7)jar cvf myjar.jar **—create all contents in current directory.2. 察看jar文件jar tf jar-filet—want to view the Table of contents of the JAR file.eg: 1)jar vft yahh.jarv—Produces verbose(详细的) output.3. 提取jar文件jar xf jar-file [archived-file(s)]x—want to extract files from the JAR archive.eg: 1)jar xf yahh.jar yahh.txt(仅提取文件yahh.txt)2)jar xf yahh.jar alex/yahhalex.txt(仅提取目录alex下的文件yahhalex.txt)3)jar xf yahh.jar(提取该jar包中的所有文件或目录)4. 修改Manifest文件jar cmf manifest-addition jar-file input-file(s)m—Used to include manifest information from an existing manifest file.5. 更新jar文件jar uf jar-file input-file(s)u—want to update an existing JAR file.。

相关文档
最新文档