项目打war包的方法 —java培训
- 格式:doc
- 大小:13.50 KB
- 文档页数:2
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。
WAR包的制作和解压过程指导目录1 说明 (1)2 WAR包的制作 (2)2.1 MyEclipse下制作War包 (2)2.2 JAR程序打WAR包 (4)2.3 Ant工具打WAR包 (6)3 WAR包的更新 (9)4 WAR包的解压 (11)4.1 WinRAR程序解压 (11)4.2 JAR程序解压 (12)1说明目前公司的很多测试环境和实施环境都采用WAR包部署的形式,所以,要求相关人员都要掌握WAR包使用。
配置人员要完全掌握WAR包的制作、使用和更新,WAR的使用可以参考《数据中心系统weblogic安装部署说明》等文档进行,本文主要讲解WAR的制作和更新过程。
鉴于在MyEclipse下进行WAR包制作均存在一定的局限性,而JDK下的JAR 程序和Ant都具备打WAR包的功能,所以,本文侧重于使用JAR程序和Ant工具进行WAR包制作和解压的说明,对于MyEclipse下的使用,则提供一般性的指导方法。
关于进入命令行窗口的说明:本文档中提供的操作多次使用到命令行窗口。
在Windows下,打开“开始 运行”,输入“cmd”后回车,即可出现如下图所示的窗口,此即命令行窗口。
详细过程见文章正文2WAR包的制作WAR包,其实是将程序进行打包后形成的一种压缩包,在目前的系统、应用中使用较为普遍。
其制作过程一般可以通过MyEclipse自带的导出功能实现,也可以使用jdk中的jar程序完成,ant也提供了打WAR包的办法,以下分别进行介绍。
2.1MyEclipse下制作War包首先需要注意的是,MyEclipse只能对Web Project类型的工程进行WAR包制作,对于我们常用的Java Project则无法进行WAR包制作。
打开MyEclipse,在【Package Explorer】中选中需要压缩的项目,点击工具栏中的“File->Export…”,在弹出的【Export】对话框上,点击选中树状图中的“J2EE->WAR file (MyEclipse)”,点击【Next >】继续,如图2.1所示:图2.1 选择导出类型在【WAR Export】对话框上选择需要压缩的项目名称,点击【Browse…】,在弹出的【另存为】对话框上选择WAR包保存的路径和名称,确认后点击【Finish】,开始进行压缩。
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 包的资料请关注其它相关⽂章!,希望⼤家以后多多⽀持!。
start javaw用法
Java是一种广泛应用于软件开发的编程语言。
而javaw是Java Virtual Machine的一个可执行文件,它在Windows系统上运行Java应用程序时使用。
javaw与java的主要区别在于,javaw不会打开命令行窗口来运行Java应用程序。
它主要用于图形用户界面(GUI)应用程序,避免命令行窗口的干扰。
当你通过双击一个.jar文件或者运行一个已经打包成可执行文件的Java应用程序时,操作系统会默认使用javaw来运行。
使用javaw的方法与使用java的方法非常相似,只是将"java"替换为"javaw"即可。
下面是使用javaw的一些常见用法:
1. 运行一个已经编译的类文件:
javaw YourClass
2. 指定类路径运行类文件:
javaw -classpath YourClassPath YourClass
3. 指定其他命令行参数:
javaw -DpropertyName=propertyValue YourClass
除了上述的基本用法,javaw还可以配合其他选项和参数实现更复杂的功能,如设置堆内存大小、启用调试模式、启用安全管理器等。
你可以通过查阅Java官方文档或者Java IDE的帮助文档来了解更多关于javaw的用法。
需要注意的是,javaw只能用于Windows系统上,如果你在其他操作系统上运行Java应用程序,你需要使用相应的命令来执行。
java worksheet 方法在Java中,Worksheet不是内置的类或方法。
但是,如果您是在谈论Apache POI库,它是一个用于读取和写入Microsoft Office格式文件的Java库,那么您可能是想了解如何使用POI来操作Excel工作表。
下面是一个简单的示例,说明如何使用Apache POI来创建一个新的Excel 工作表:```javaimport ;import ;import ;import ;public class CreateWorksheetExample {public static void main(String[] args) throws IOException {Workbook workbook = new XSSFWorkbook(); // 创建一个新的Excel工作簿Sheet sheet = ("MyWorksheet"); // 创建一个新的工作表,并将其命名为"MyWorksheet"// 创建一行并添加单元格Row row = (0);Cell cell = (0);("Hello, World!");// 将工作簿写入文件try (FileOutputStream outputStream = new FileOutputStream("")) {(outputStream);}}}```在上面的示例中,我们首先创建一个新的Excel工作簿。
然后,我们使用`createSheet`方法创建一个新的工作表,并将其命名为"MyWorksheet"。
接下来,我们创建一行并添加一个单元格,将值设置为"Hello, World!"。
最后,我们将工作簿写入名为""的文件中。
请注意,这只是一个简单的示例,演示了如何使用Apache POI来创建新的Excel工作表。
一、搭建环境1.下载和安装JDK开发GWT应用程序之前,需要做一些准备工作。
Java环境对于开发GWT应用是必不可少的。
GWT工具包的编译需要JDK的支持,因此在安装GWT工具包之前请下载和安装合适的JDK,GWT工具要Java 5以上的版本。
具体步骤如下:第一步:下载jdk,下载地址:/technetwork/java/javase/downloads/index.html下载JDK安装程序(本培训提供jdk1.7安装包)下载后安装到E:\jdk目录下,可以根据实际情况将JDK安装到任意目录下第二步:使用鼠标右击“我的电脑”→“属性”→“高级”→“环境变量”第三步:系统变量->新建->变量名:JAVA_HOME 变量值:e:\jdk\ (该变量值是jdk的安装路径)系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;(CLASSPATH的变量值英文中有句号“.”后跟一个分号,表示当前路径的意思) 验证是否配置成功-----进入doc中、输入java和javac命令都能正常显示。
输入java -version 命令能显示jdk的版本号!就可以了提示GWT的调试器依赖32位的SWT界面库。
要在系统上调试GWT项目,必须安装32位JDK。
当然在64位JDK环境中也可以编译GWT项目2. 安装Eclipse和GWT的开发插件开发GWT只需要JDK。
但有个好的开发环境可以极大提高工作效率。
Eclipse是最流行的Java集成开发环境。
Google提供了GWT的Eclipse开发插件。
目前Google提供的插件只支持Eclipse 3.3以上版本。
打开网址/downloads/,进入到Eclipse Downloads页面选择下载Eclipse IDE for Java EE Developers。
java命令大全在Java中,可以使用许多命令来编译、运行和调试Java程序。
以下是一些常见的Java命令:1. `java`:用于运行Java程序。
例如:`java HelloWorld`将运行名为`HelloWorld`的Java程序。
2. `javac`:用于将Java源代码编译为Java字节码文件。
例如:`javac HelloWorld.java`将编译名为`HelloWorld.java`的Java源代码文件。
3. `jar`:用于创建和管理Java归档文件。
例如:`jar cvf MyJar.jar MyClass.class`将创建一个名为`MyJar.jar`的归档文件,并将`MyClass.class`添加到其中。
4. `javadoc`:用于生成Java文档。
例如:`javadoc MyPackage/*.java`将生成`MyPackage`中所有Java文件的文档。
5. `javap`:用于反汇编Java字节码文件。
例如:`javap MyClass`将显示与名为`MyClass`的类关联的字节码。
6. `jarsigner`:用于对已签名的Java应用程序和程序包进行签名和验证。
例如:`jarsigner -sign MyJar.jar keyAlias`将对`MyJar.jar`进行签名。
7. `jdb`:Java调试器的命令行界面。
例如:`jdb MyProgram`将使用`jdb`调试名为`MyProgram`的Java程序。
8. `jrunscript`:用于在命令行上运行脚本的命令。
例如:`jrunscript MyScript.js`将运行名为`MyScript.js`的JavaScript脚本。
9. `jps`:用于列出当前正在运行的Java进程。
例如:`jps -l`将列出所有Java进程的进程ID和类路径。
这只是一小部分常用的Java命令清单,Java还有许多其他命令用于不同的目的。
坦克⼤战【java项⽬】坦克⼤战(JAVA项⽬)1.项⽬简介复刻童年经典⼩游戏——坦克⼤战:⽤户进⼊游戏界⾯后,通过键盘上的数字1,2键选择游戏模式,选择1并按回车键进⼊单⼈模式;选择2并按回车键进⼊双⼈模式。
玩家1可通过按键WASD控制坦克⽅向及移动,并且按空格发射⼦弹。
玩家2通过⽅向键控制坦克⽅向移动,并且按K键发射⼦弹。
⼦弹碰到围墙后消失,⼦弹碰到坦克后产⽣爆炸特效。
左上⾓记录敌⽅坦克的实时数量。
玩家击败所有敌⽅坦克,游戏胜利;若所有我⽅坦克被击败,或者我⽅基地被摧毁,则游戏失败。
2.⼩组成员及分⼯成员负责任务组长黄抒鸿博客撰写,游戏规则的制定,碰撞检测,爆炸特效的实现,随机事件的编写组员雷正伟前期调研,⾯向对象设计,窗体绘制,闪动问题的解决,键盘事件的编写3.项⽬功能架构图与主要功能流程图3.1项⽬功能架构图3.2主要功能流程图3.3⾯向对象类设计图4.功能详解4.1 窗体绘制及添加键盘事件4.1.1 创建窗⼝·创建类继承JFrame·创建启动⽅法launch()4.1.2 为窗⼝上⾊·重写paint()⽅法,设置图形颜⾊和⼤⼩4.1.3 添加选项⽂字4.1.4 为窗⼝添加键盘事件添加内部类,实现KeyAdapter类,重写keyPressed⽅法,写⼊键盘事件,1选择单⼈模式,2选择双⼈模式窗⼝添加键盘监视器添加指针图⽚在项⽬⽂件夹下创建⽂件夹images,关于项⽬的图⽚,插件都放在这个⽂件夹内创建图⽚对象在launch()⽅法中重绘图形4.2双缓冲解决闪动问题创建⼀个图⽚Image offScreemImage = null;重写paint()⽅法创建⼀个和弹出窗⼝宽⾼相同的图⽚,获取该图⽚的图形对象,把所有内容添加到该图⽚中//创建和容器⼀样⼤⼩的Image图⽚if(offScreemImage == null) {offScreemImage = this.createImage(width,height);}//获的该图⽚的图形Graphics gImage = offScreemImage.getGraphics();gImage.setColor(Color.GRAY);gImage.fillRect(0, 0, width, height);//添加游戏选项gImage.setColor(Color.BLUE);gImage.setFont(new Font("仿宋", Font.BOLD, 50));if (state == 0 ) {gImage.drawString("选择游戏模式", 220, 100);gImage.drawString("单⼈模式", 220, 200);gImage.drawString("双⼈模式", 220, 300);//绘制指针gImage.drawImage(select, 160, y, null);} else if (state ==1 || state ==2) {gImage.drawString("游戏开始", 220, 100);if (state ==1) {gImage.drawString("单⼈模式", 220, 200);} else if(state ==2) {gImage.drawString("双⼈模式", 220, 200);}}4.3⾯向对象设计游戏⽗类:坦克类:玩家⼀和玩家⼆玩家2和玩家1的⽅法都是⼀样的,只需要修改键盘事件。
maven-war-plugin详解-概述说明以及解释1.引言1.1 概述概述Maven-war-plugin是Maven项目中非常重要的一个插件,它主要用于构建war包项目。
在传统的Java Web项目中,通常会将Java源代码编译为class文件,并将静态资源、配置文件等打包成war包进行部署。
而Maven-war-plugin插件的作用就是帮助开发者在Maven项目中自动化地完成这些构建和打包的工作。
通过配置Maven-war-plugin,开发者可以方便地指定项目的Web 资源目录、编译输出目录、依赖项等信息,从而在执行Maven构建命令时,自动生成符合Java Web项目规范的war包文件。
这样一来,开发者就可以更加高效地进行项目开发、构建和部署工作。
在本文中,我们将详细介绍Maven-war-plugin的配置方式、常用功能和注意事项,希望能够帮助读者更加深入地了解和应用这个重要的Maven插件。
1.2 文章结构文章结构部分主要包括文章的整体框架和组织结构,帮助读者理解文章的内容安排和逻辑展开。
本文分为引言、正文和结论三个部分。
引言部分包括概述、文章结构和目的。
其中,概述介绍了文章要探讨的主题,文章结构介绍了文章的整体框架,目的阐述了写作此文的初衷。
正文部分包括Maven简介、Maven的生命周期和Maven War插件的作用。
介绍了Maven的基本概念和使用方法,Maven的生命周期分析了Maven项目的各个阶段和执行顺序,War插件的作用详细介绍了Maven War插件在项目构建中的重要作用。
结论部分包括总结、应用与实践和展望。
总结部分对文章的内容进行简要概括,应用与实践部分讨论了Maven War插件在实际项目中的应用场景和注意事项,展望部分展示了未来Maven War插件的发展方向和可能的改进方向。
通过以上结构安排,本文将全面解析Maven War插件的详细内容,为读者提供深入了解该插件的机会和方式。
spring程序打包war,直接通过-jar启动,并指定spring.profiles.a。
备注:spring boot有内嵌tomcat,jar项⽬可以⽤java -jar命令启动,war包也可以,且可以直接指定spring.profiles.active参数控制多环境配置直接指定传参,通过命令或脚本启动⽰例:/opt/jdk-1.8/jdk1.8.0_191/bin/java -jar -server -Xmx1024m -Xms1024m -Xmn256m -XX:PermSize=128m -Xss256k /opt/source/project/danny-test.jar --spring.profiles.active=test > /opt/source/project/info.out & (注意参数放在jar包后⾯,放前⾯好像不⾏,本⼈实测过)很多时候,我们项⽬在开发环境和⽣成环境的环境配置是不⼀样的,例如,数据库配置,在开发的时候,我们⼀般⽤测试数据库,⽽在⽣产环境的时候,我们是⽤正式的数据,这时候,我们可以利⽤profile在不同的环境下配置⽤不同的配置⽂件或者不同的配置spring boot允许你通过命名约定按照⼀定的格式(application-{profile}.properties)来定义多个配置⽂件,然后通过在application.properyies通过spring.profiles.active来具体激活⼀个或者多个配置⽂件,如果没有没有指定任何profile的配置⽂件的话,spring boot默认会启动application-default.properties。
profile的配置⽂件可以按照application.properyies的放置位置⼀样,放于以下四个位置,1. 当前⽬录的 “/config”的⼦⽬录下2. 当前⽬录下3. classpath根⽬录的“/config”包下4. classpath的根⽬录下我们在开发Spring Boot应⽤时,通常同⼀套程序会被应⽤和安装到⼏个不同的环境,⽐如:开发、测试、⽣产等。
Codewars征战记录-JAVA篇⽆意中发现⼀个代码题⽬的⽹站,做了⼀个题,深有感触。
记下来⼤⽜们的解决思路渣渣程序员就是我了,我会先列⾃⼰的写法,再列⼤⽜的写法,共勉。
题⽬:传⼊⼀个数字n,求3和5的倍数和。
如果该数为3和5共同的倍数,则计算⼀次。
DEMO:传⼊数字10,求3和5的倍数和,所以需要计算3、5、6、9的和,即23public int solution(int number) {int result = 0;for (int i = number - 1; i > 0; i--) {if (i%5 == 0 || i%3 == 0){result = i + result;}}return result;}⼤神例⼦1,使⽤ intsteampublic int solution(int number) {return IntStream.range(3, number).filter(n -> n % 3 == 0 || n % 5 == 0).sum();}还有个不使⽤循环。
/*The sum of multiples of 3 is 3 + 6 + 9 + ... = 3 (1+2+3+...)The sum of mulitples of 5 is 5 + 10 + 15 + ... = 5 (1+2+3+...)If we just sum these, we'll get double values when a number is divisble by both,so we substract the sum of multiples of 15, which is obtained in a similar manner.The upper bound cannot be floor function because the inputed number shouldn't count.*/import ng.Math;public class Solution {public int solution(int n) {int a = (int) Math.ceil(n/3d) - 1;int b = (int) Math.ceil(n/5d) - 1;int c = (int) Math.ceil(n/15d) - 1;return (3 * a * (a+1) + 5 * b * (b+1) - 15 * c * (c + 1)) / 2;}}题⽬:ATM的密码只能有4或者6位的数字密码组成。
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文件的概念、背景和原理。
为了使读者更好地理解,本文按照以下章节进行组织和阐述。
第一部分是引言部分,包括概述、文章结构和目的。
在本部分,我们将对整篇文章进行简要回顾,并明确文章的目的和意义,以便读者能够更好地理解和把握文章内容的整体框架。
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 –cvf XXXX.war XXXX
Jar –cvf ROOT.war ROOT
环境变量要设置好
命令行方式
前提是你机器中安装了JDK,并且在环境变量path中添加了jdk的bin目录进去。
可以通过jar命令来打包war和jar包,如下jar命令使用规范
下面是使用示例
这个示例是打包class目录下的com目录,如果你想打包class目录下的所有内容可以使用
Java代码
jar -cvf test.jar *
jar -cvf test.jar *
打war包也是一样的用法只是你打包的目录应该是web应用的根目录。
war包用winrar打开目录是这样的
大家可以根据自己的需求配置使用jar命令的参数。
使用工具JBuilder对web项目可以自动生成war包在web模块上单击右键选择properties
如下图进行设置,这样在rebuild项目和web模块的时候都会在项目根目录下产生一个war文件。
使用工具eclipse导出war包在项目上点击鼠标右键
如下图
选择war点击下一步
选择要导出的项目和war的存放路径,点击完成。
导出jar文件方法类似,请大家自己研究一下。
是我自己懒了!。
一、先将一个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项目打war包可以在Eclipse和MyEclipse工具中自动打包,就是右键,然后导出war 包就可以了,可是我发现我的一个项目打war包的过程中遇到点小麻烦,导出的war包打开之后,里面少了很多东西,明显有问题。
那怎么办呢,网上搜了许多偏方都没效果,请教同事,大家也没遇到过这种状况。
除了这种方法,我们可以运用DOS命令来手工打war包:
首先,打开DOS命令行,敲入“jar”,我们发现它提示不是内部或外部的命令这样的错误,这时八成是你的JAVA环境没有配置好,我们可以用JAVA_HOME方式或者直接在Path路径里配置,等配置好,(注意你的JDK版本,里面有jar.exe和java c.exe的版本适合)我们再敲入"jar",会出现如下效果,说明配置成功。
下面我们用DOS命令进入到你的项目中
好现在我们来运行命令手工打包
回车键入,等待它自动执行完:
OK,打包完成,现在我们来看下目录下的war包
已经打好了,我们放到Tomcat的Webapps下,启动tomcat,自动解压完成。
OK,大功告成。