快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

"package中的javac,java用法" && "制作可执行jar文件"


java初学者最早会用的命令无非是就是javac和java,但即使这么简朴命令也还会把我们弄得头皮发麻 -__- .Roger下面就"package中的javac,java用法"和"制作可执行jar文件"做点简朴的解释。

最基础的东西就不废话了,至于package先讲讲我的理解,因为我觉得知道这点对于开发还是很有帮助的。举个例子说:有两个类Tom和Jerry同属于一个package--Partners

//Tom.javapackage Partners;public class Tom{       public String toString()      {               return "It\\\'s Tom";      }}

//Jerry.javapackage Partners;public class Jerry{     public static void main(String[] args)     {            tom = new Tom();           System.out.println(tom + " and I am Jerry.");    }}

下面Roger要编译它们为字节码了,@_@,可用如下命令:Tom先,这很明显,而且必须:javac Tom.java 或 javac -d ./Partners Tom.java

(这里应该先设好path,如Roger机子上就是C:/j2sdk1.4.2/bin,因为javac.exe和java.exe都在这个目录下,它们可是javac和java的源泉;同理classpath也要设好了,Roger的机子上是.,C:/j2sdk1.4.2/lib/dt.jar和C:/j2sdk1.4.2/lib/tools.jar...,tools.jar是jar命令的源泉,不过除了.,其他两个都是默认的,不设也行;假如有其他的东东也要设上去,如机子上装了tomcat就应该加上Tomcat 5.0/common/lib下的jar文件,反正第三方类库都加上去,以便jvm找到着.假如用eclipse就要在eclipse里也设一下tomcat,这个以后在说吧.)

这两条命令的区别在于后者执行完后在当前目录下生成一个Partners文件夹,里面有生成的Tom.class. -d 表示指定在哪个目录下生成class文件,即使写一长窜嵌套的之前没有的目录,命令执行完之后也会生成的,这点不用担心的。至于前者执行完之后,还要人工创建一个Partners文件夹,并把Tom.class移进去。为什么一定要这个Partners文件夹呢?这就看你对package的理解了。我们知道这里Tom的全称是Partners.Tom,而jvm在处理它时把它转化为Partners/Tom或Partners/Tom(看不同的system了)。当你要运行它时,就应该在Partners文件夹上一层目录用以下命令:java Partners.Tom。(在Partners目录下用这个命令不行的:java Tom,不然会出现一个error说类名找不到,只有Partners/Tom这个类名)于是jvm会循着这个线索对目录层层解析才能找到Tom.class并执行它.假如你的package更长点也相同,比如:com.blogdriver.bubbletea, 不信就试试吧.Jerry也是相同的道理.所有工作结束之后,我们有以下目录结构:

.--Partners    --Tom.class    --Jerry.class

看到这里肯定有老兄会说为什么要这么复杂,干脆不要用package算了。package还是有很多好处的,主要是使类之间的访问有了限制,便于控制和治理。举个例子,在develop和production版本之间进行控制就很有好处了,当然假如你用eclipse之类的IDE的话,就用不着上面这么复杂了,按下Run按钮就行了。

下面要把它们打成可执行的jar文件.先自己动手创建一个.mf文件,里面写"Main-Class: Partners.Jerry/n",之后的目录结构如下:.--Partners    --Tom.class    --Jerry.class--MANIFEST.mf

MANIFEST相称于一个货单,里面存了诸如执行的主类是哪个等信息,取其他名字也行。

然后运行下面命令: jar cvfm test.jar MANIFEST.mf Partners(至于cvfm是什么就看这个吧:jar -help,help很有用的啊)这其实是个压缩的过程.之后就生成可执行的jar文件了,假如是applet之类的文件双击即可执行,而本例双击之后结果很快显现并消失了,正常的人眼估计是看不到了,就用下面命令吧:java -jar test.jar.看到结果了吧.下面Roger再给一个applet的例子,按照上面步骤弄一下,双击jar文件就可以看到很明显的结果了.

import javax.swing.*;import java.awt.*;public class myApplet extends JApplet {  public void init() {    getContentPane().add(new JLabel("Applet!"));  }   public static void main(String[] args) {    JApplet applet = new myApplet();    JFrame frame = new JFrame("Applet");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    frame.getContentPane().add(applet);    frame.setSize(100,50);    applet.init();    applet.start();    frame.setVisible(true);  }}

命令如下:javac myapplet.javajar cvfm test2.jar ANOTHERMF.mf myApplet.class

注重这样做一定要有main函数,有的applet没有的就自己加一个吧,跟上面的例子差不多,主要是JApplet.init()和JApplet.start()方式.jar的其他用法就不用Roger说了吧,自己用-help看看就知道了.






返回类别: 教程
上一教程: 成员变量和方式的override的详解
下一教程: 构建自己的基于Java的超级计算机

您可以阅读与""package中的javac,java用法" && "制作可执行jar文件""相关的教程:
· 制作可执行的JAR文件包及JAR命令详解
· 制作可以执行的 JAR 文件包及 JAR 命令详解
· 如何将做好的JAVA程序生成可执行文件
· Java如何调用可执行文件和批处理命令
· Java中for循环中执行顺序问题及break, continue用法
    微笑服务 优质保证 索取样品