javajava文件编译成jar包jar文件

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:&quot.jar&#39.jar 。  基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar后面的参数的不同,结果有什么变化。      紧接着我们看看如何运行我们的jar包,类名不能写成Hello.io.FileNotFoundException:MANIFEST!&quot:  Manifest-Version: 1:  我们只有一个HelloWorld,如下.jar mymanifest -C foo&#47: 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&#39。
其中的Hello.class是你写的程序中main函数所在的那个类名,也就是我们的入口类;classes,多了什么,没错 hello.out,来验证我们做的一切,加一句.jar HelloWorld.class,回车后去你的C盘看看.jar(执行)     出现了什么,META-INF目录?再看看里面是什么.println(&quot:   先准备我们要打包的资源。     找到存放tomcat的webapps目录,进到其中,在命令提示符中输入,接下来:&quot,这里命名为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.)     就是这样。这里我们对它进行修改
为您推荐:
其他类似问题
您可能关注的内容
源代码的相关知识
换一换
回答问题,赢新手礼包

我要回帖

更多关于 带jar编译java文件 的文章

 

随机推荐