来源:蜘蛛抓取(WebSpider)
时间:2017-11-15 03:26
标签:
带jar编译java文件
1.编写源代码
编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java。程序结构如下:
import java.awt.*;
import javax.swing.*;
//更多包的导入...
class NotePadFrame extends JFrame {
//主界面的设计...
//其他相关代码...
public class CardLayoutDemo {
public static void main(String[] args) {
new NotePadFrame();
2.打开终端
打开系统菜单:“开始”-&“运行...”-&输入“cmd”,打开终端。
执行如下命令转到源文件所在目录:
3.编译源文件
输入如下命令进行编译:
javac CardLayoutDemo.java
执行成功之后,会在当前目录下生成一系列.class文件。
4.新建包文件夹
输入如下命令新建包文件夹:
mkdir test
也可在资源管理器新建此文件夹。
此文件夹必须与源文件中定义的包名完全一致()。
5.将类文件放到新的文件夹里
在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。
6.测试程序是否可正常运行
在I:\myApp路径下输入如下命令:
java test.CardLayoutDemo
如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。
7.生成可执行的jar包
在I:\myApp路径下输入如下命令:
jar -cef test.CardLayoutDemo CardLayoutDemo.jar test
以上命令及参数的含义如下:
jar命令为java自带的专用打包工具;
c代表生成新的jar包;
e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.CardLayoutDemo;
f代表生成的jar包的名称,在本例中是CardLayoutDemo.jar。此包名可以随意命名,没有规定;
test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。
8.测试jar包是否可正常运行
在I:\myApp路径下输入如下命令:
java -jar CardLayoutDemo.jar
如果可以正常运行程序,则说明jar包制作成功。
如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
本文已收录于以下专栏:
相关文章推荐
CMD下将JAVA程序打包成 jar 的 公式:
jar {c t x u f} [v m e 0 M i] [-C 目录] 文件名……
c :创建一个 ja...
jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ...
1. 新建需要将生成的class文件存放的路径
2. 切换到源文件demo.java所在路径
执行 javac
e:\myclass
MyMenuDemo.java
执行成功...
一个package中,两个java文件中,一个有main函数,一个没有,两者之间有调用关系
ThreadTest.java
import javax.swing.JF...
import javax.servlet.jsp.JspEimport javax.servlet.jsp.JspTagEimport...
一分钟搞定java源程序编译成JAR包
Android插件化过程中,需要把接口工程导出jar包,然后把jar包导出到插件工程。通过jd-gui来查看jar包
发现jar包中只有Java类生成的.class文件和签名文件。通过eclipse...
Java程序打包成jar包
下面是jar命令的帮助说明:
用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file...
功能:为大家浅谈如何通过eJava项目生成
如果要导出可运行的JAR文件,需要选择Runnable Jar File。
选择要到处JAR文件的工程,右键选择“Export”;
2. 选择“Java-->Runnable
他的最新文章
讲师:董晓杰
讲师:姚远
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)怎么修改jar包中的class文件然后再重新打成jar包 - ITeye问答
怎么修改jar包中的class文件然后再重新打成jar包,请哪位高手分步指点一下怎么操作,不胜感激
采纳的答案
看你的问题应该包含两个方面:
1、怎么修改jar包中的class文件?
如果有源码,直接修改源码,重新编译;
如果没有源码,那要使用反编译工具反编译之后,再进行修改,重新编译;
2、怎么把修改好的class文件替换jar包中原来的class文件?
最简单的方法就是:使用rar,zip,好压等解压缩工具打开jar包,直接把修改的class文件拖进去,覆盖原来的class文件。
麻烦的就是使用eclipse或java命令重新打包,不建议新手使用。
反编译后复制到eclipse里,引用的文件不存在,编译不通过怎么办?
不行,还是有问题
唉。我这么给力的答案不支持。。。
1.楼上哥们的说的 导入到eclipse中, 修改完了 然后导出jar即可
2.jar cf file.jar *.class 将当前目录下所有CLASS文件打包成新的JAR文件
3.对于补丁。之前已经有jar 例如:发现一个bug.那么修改其中一个类,需要在次打包,对于这种情况,只需要把对应的 class放在指定的目录中 例如:file.jar中有一个类Demo 修复了bug需要再次上传,他对应的路径是com.demo.D
那么只需要把Demo.class 在项目classes 目录下,建立一个com/demo/文件夹
把Demo.class放入,classes 下的class优先加载jar中的class ,这样会覆盖jar文件中的类
可以用7-zip、winzip等解压缩工具打开jar文件,然后将你要替换的class文件拖进去就行了。
不过,强烈建议你在开发工具里改好代码,重新编译打包。
导入到eclipse中, 修改完了 然后导出jar即可
已解决问题
未解决问题博客分类:
日&&&&&&& 星期二&&&&&&&&& 阵雨
&&& 将写好的java程序放到Linux上执行,可以利用Linux服务器更快的跑完程序。由于我windows和linux下使用的jdk版本不同,因此将windows的java程序打成jar包后在linux下运行总会报错。于是只能在Linux下使用javac命令编译生成class文件后再运行。
&&& 此时遇到一个问题,我的java文件需要引入一个外部的jar包。在这种情况下如何进行编译运行呢?在多次尝试后,总结方法如下:
1、将外部jar包(javacsv.jar)放在Linux路径下面。如/home/cys/lib.
2、将需要编译的java文件(CsvTest.java)放在Linux路径下。如/home/cys/test&&
3、编译已经写好的java文件,命令如下:
&& javac -cp /home/cys/lib/javacsv.jar /home/cys/lib/CsvTest.java
&& 生成CsvTest.class文件。
4、运行程序,命令如下:
&& java -cp /home/cys/lib/javacsv.jar:/home/cys/lib/CsvTest CsvTest
&& 结果运行正确。
&& 需要注意的几点是:
&& 1、编译的时候,需要使用-cp环境变量来引入外部jar的地址。-cp也可以换成-classpath。
&& 2、运行过程中,环境变量-cp中一定要加入编译时候生成的class文件的路径。并且用冒号分割。记住,在windows下环境变量是使用引号分割的。但是在Linux下环境变量需要使用冒号分割。
&& 如有疑问,请联系我。
浏览 17004
浏览: 21637 次
来自: 北京
你好,如果我现在有一个项目,其中里面含有几十个jar包,我不可 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如何将源代码编译成jar包_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何将源代码编译成jar包
我有更好的答案
多了什么呢,它将被递归处理.MF(系统找不到指定的文件)怎么回事?)Ok,这个最后的一步了。
有两点必须记得:
1.4:在tomcat中我们就不能再用jar这种格式,而改war格式,它是专门用于web应用的: 1.4.2 (Sun Microsystems Inc.) Main-Class: Hello
然后最少两个空行,在第一行中&Main-class: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用zip压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录. 来个小例子试试看.2 (Sun Microsystems Inc: HelloWorld这一句。 (是吗,我怎么没试出来,提示java, Hello World! 我们再来看看jar文件在tomcat中发布,注意.class 示例1:将两个class文件存档到一个名为 ' } } 将这个java文件存到C盘跟目录下,ok: public class HelloWorld{ public static void main(String[ ] args){ System:".jar'.jar 。 基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar后面的参数的不同,结果有什么变化。 紧接着我们看看如何运行我们的jar包,类名不能写成Hello.io.FileNotFoundException:MANIFEST!": Manifest-Version: 1: 我们只有一个HelloWorld,如下.jar mymanifest -C foo/: HelloWorld 接下来,我们在命令提示符里执行: jar umf MANIFEST, 在先前打开的命令提示符下(跳转到C盘提示符下),我们输入javac HelloWorld:
第一行为.class的格式,要省了后辍。
我试过了,你错的原因是&Main-class,此时我们也将我们唯一的servlet,HelloWorld。这个就是我们之前写的那个类。也即, Manifest-Version。 在进入正题之前,你要先打开我们刚刚做好的jar包看看.1或以上版本); ; 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中: jar cvfm classes,还有一个MANIFEST.MF文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看.0 Created-By: 1,并且包含下列文件: 如果一个文件名是一个目录: jar cvf classes.jar Foo.class Bar.class 示例2:用一个存在的清单(manifest)文件 'mymanifest'。
其中的Hello.class是你写的程序中main函数所在的那个类名,也就是我们的入口类;classes,多了什么,没错 hello.out,来验证我们做的一切,加一句.jar HelloWorld.class,回车后去你的C盘看看.jar(执行) 出现了什么,META-INF目录?再看看里面是什么.println(": 先准备我们要打包的资源。 找到存放tomcat的webapps目录,进到其中,在命令提示符中输入,接下来:",这里命名为hello,再进去新建WEB-INF文件夹,再进去新建 classes文件夹;Hi, Hello World,看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 .MF app.jar (应该是hello。 清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。首先在资源文件当前目录写一个清单文件example.mf
mf文件应是以下格式: 1.0 Created-By;之后没有一个空格。
在CLASS目录下运行:jar cfm example.jar example.mf A 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1:
Main-Class:jar cvf hello.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(&&); out.println(&&); out.println(&&); out.println(&Hello, World!&); out.println(&&); } }//end here! 对它编译。下面是web.xml: &?xml version=&1.0& encoding=&UTF-8&?& &!DOCTYPE web-app PUBLIC &-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN& &&& &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&在命令提示符下进到先前创制的hello目录下,执行 jar cvf hello.war * ,我们便得到hello.war。将它拷贝至webapps目录下,ok,来看最后一步,打开tomcat的目录conf中的server.xml,加入: &Context path=&/hello& docBase=&hello.war& debug=&0& reloadable=&true&/& 大功告成!运行它,启动tomcat,后在浏览器中输入,有了吗? 最后,如果你想用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& 好了,就这么多,希望对你有点帮助。:) 补充: 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.htm 2)jar cvf myjar.jar query_maintain_insert.htm v---Produces verbose(详细的) output. 3)jar cvf myjar.jar query_maintain_insert.htm mydirectory 4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory 0---don't want the JAR file to be compressed. 5)jar cmf MANIFEST.MF myjar.jar yahh.txt m---Used to include manifest information from an existing manifest file. 6)jar cMf MANIFEST.MF myjar.jar yahh.txt M---the default manifest file should not be produced. 7)jar cvf myjar.jar * *---create all contents in current directory. 2. 察看jar文件 jar tf jar-file t---want to view the Table of contents of the JAR file. eg: 1)jar vft yahh.jar v---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..;之后一定要有一个空格。后有最少两个空行
2.class B,其实整个过程下来基本上和jar是类似的:Main-Class: HelloWorld (在第三行), Hi; 的存档文件中;).java,然后继续输入. 选项,新建一个文件夹: java -jar hello.jar吧) 这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新。你不妨可以再进去看看是不是添上了Main-Class.) 就是这样。这里我们对它进行修改
为您推荐:
其他类似问题
您可能关注的内容
源代码的相关知识
换一换
回答问题,赢新手礼包