java源码如何打包成jar

时间:2022-07-30 09:32:30
小弟在网上看了很多资料 还是不懂 我有一个HelloWorld的java项目 在 E:\MyEclipse 7.0M1\workspace2 工作区里

里面有  bin文件夹   src文件夹  还有 .classpath  和  .project

然后按照网上的在doc 用 javac HelloWorld.java jar cvf hello.jar HelloWorld.class

居然说 'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

里面就只有两句话

package com.hello;

public     class     HelloWorld{   
    public   static   void   main(String[]   args){   
    System.out.println(“你好! 世界”);   
  }   
  } 
 

如何手动打包成  jar 啊 而且可以运行  网上我都看的有点头晕

35 个解决方案

#1


1.工具:eclipse v3.4.1


2.撰写如下代码:


package com.william.test.jartest;

public class JarTest {

public JarTest() {

   System.out.println("This is JarTest.");

}



/** * @param args */

public static void main(String[] args) {

// TODO Auto-generated method stub

JarTest obj = new JarTest();

System.out.println(”This is main method.”);

}

}


3.右键点击项目根结点,选择”export”,




4.在”Select an export destination”中选择”Java”-”JAR file”

5.”Next”后,在”JAR Export”中勾选你要打包的项目

6.在”Export destination”中选择你要存放jar包的路径,本例中是”E:\Code\fortest.jar”

7.”Next”后,没有什么需要特殊设置的,继续”Next”

8.接下来是设置Manifest内容,最重要的是选择Main Class的路径,既通过java -jar命令后,默认执行的类。在本例中选择com.william.test.jartest.JarTest

9.”Fin

#2


你的Java环境没配好,百度下...

#3


晕  我说要 手动了  在doc 下 如何打包

#4


引用 2 楼 justinavril 的回复:
你的Java环境没配好,百度下...


我才晕  小熊啊 是我在提问啊 

#5


引用 3 楼 jazzbond 的回复:
晕  我说要 手动了  在doc 下 如何打包


我才晕  小熊啊 是我在提问啊 害我还引用错

#6


java工具之javadoc和jar 
1,javadoc 
注释标记 /**   */格式 
如: 
/** 
*Title:Killer类<br> 
*@author Killer 
*@version 1.00 
*/ 
其中<br>表示换行,但是有@标志会自动换行 
下来对Killer构造方法批注 
/** 
*这是Killer类的构造函数 
*@param name Killer的名字 
*/ 
其中@param <参数名称><参数说明> 
使用说明: 
javadoc -d Killer -version -author Killer.java 
-d用来说明它后面跟的是文件存放的位置 
-version和 -author说明文件要求加入版本信息和作者信息 
还有对哪行进行注释那么注释文字就在它的前一行开始加. 
private的注释一般不会发布因为它关系到你类的内部结构但是如果你要发布的话可以加上-private参数 
2,jar 
1.jar cf test.jar test 
在当前目录生成test.jar文件,如果已经存在那么覆盖它 
-c创建新文档 -f 指定文档名 test是对test文件夹进行操作 
2.jar tf test.jar 
仅列出test.jar文件的所有目录和文件名列表 
3.jar xf test.jar 
解压test.jar文件到当前目录 
4.注意问题 
如果目录如下: 
+----c 
   +----myjava 
       +----test1 
           +----test1.class  
       +----test2 
           +----test2.class 
需要将他们压缩成myjava.jar 
运行c:>jar cvf myjava.jar myjava/* 
则会得到目录结构如下myjava/myjava 
显然不是我们想要结果同时也不能正常使用 
改正方法 
c:\myjava>jar cvf myjava.jar *  

没看清楚,其实都差不多,用命令

#7


引用楼主 wolililaile 的回复:
小弟在网上看了很多资料 还是不懂 我有一个HelloWorld的java项目 在 E:\MyEclipse 7.0M1\workspace2 工作区里

里面有  bin文件夹  src文件夹  还有 .classpath  和  .project

然后按照网上的在doc 用 javac HelloWorld.java jar cvf hello.jar HelloWorld.class

居然说 'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

里面就只有两句话

package com.hello;

public    class    HelloWorld{ 
    public  static  void  main(String[]  args){ 
    System.out.println(“你好! 世界”); 
  } 
  }


如何手动打包成  jar 啊 而且可以运行  网上我都看的有点头晕


是不是我的贴  不够清楚啊

#8


javac  ke yi yong
ni mei you pei hao lu jing

#9


环境变量有问题

#10


急啊  为什么老说  

'jar' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

'javac' 不是内部或外部命令,也不是可运行的程序 
或批处理文件。 

要如何配置啊



#11


1、进入工作目录建一个文件menefest,内容:Main-Class:MyEclipse 7.0M1.workspace2.HelloWorld
2、输入命令jar cvmf menifest HelloWorld.jar HelloWord.jar MyEclipse 7.0M1.workspace2

#12


我的jdk在 C:\Program Files\Java 啊  可为什么 jar 和javac 都不能用

#13


还要配置一下环境变量,网上搜下配置JAVA环境变量,照着配下

#14


虽然 生成了  jar了 
 可双击运行出现
Failed to load Main-Class manifest attribute from 
C:\Program Files\java\jdk1.5.0\bin\h.jar

我是把 HelloWord.class 和  hello.mf 拷贝到 C:\Program Files\java\jdk1.5.0\bin 下

hello.mf  内容 这样对不  Created-By: Melody Main-Class: HelloWord 

#15


打个包怎么这么难啊

#16


网上下个fat jar很好用啊

#17


你的环境变量有问题!你把你的环境变量重新配置下!

#18


配置环境变量

#19


首先你的java 环境变量没配好 

在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。        首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、 “path”、“classpath”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和classpath是不存在的。

 

 

    一:点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径 “C:\jdk1.6”。(注:如果安装的路径不是磁盘C或者不是在jdk1.6这个文件夹,可对应修改。以下文字都是假定安装在C:\jdk1.6里面。)

    二:其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为 “.;%JAVA_HOME%\bin”,(其中“%JAVA_HOME%”的意思为刚才设置JAVA_HOME的值),也可以直接写上“C: \jdk1.6\bin”

     三:最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%JAVA_HOME%\lib \dt.jar;%JAVA_HOME%\lib\toos.jar (要加.表示当前路径)”,与相同“%JAVA_HOME%有相同意思”

 

 

          以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java -version”,如果安装成功。系统会显示java version jdk"1.6.0"。

确保安装在C盘文件名为jdk1.6,环境变量直接复制就可以了,在dos界面中输入javac来查看该命令是否合法,同样输入java来查看该命令是否合法

 

          这样环境变量就设置好了,下面进行对PATH,CLASSPTH,JAVA_HOME的讲解

 

以下为置JAVA_HOME,CLASSPATH,PATH的目的:

1,设置JAVA_HOME:

     一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;

     二、归一原则, 当你JDK路径*改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!

     三、第三方软件会引用约定好的JAVA_HOME变量, 不然, 你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题.

 

2,设置CLASSPATH:

        这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子: 你编译一个JAVA程序---A.java, 会得到一个A.class的类文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:\"), 执行java A, 将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:\"再运行java A, 看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件!

 

3,设置PATH:

        道理很简单, 你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗, 当然不会, 于是, 你可以选择把 %JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令了.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行.)

我从网上弄的!!!
 

完成后 用jar 命令打包成.jar文件

#20


首先把环境变量设置好,然后进入开始--运行--cmd  然后输入  jar  如果正常显示的话,然后
如:将两个类文件归档到一个名为 classes.jar 的归档文件中:就可以这样写
jar cvf classes.jar Foo.class Bar.class

#21


右键点击项目根结点,选择”export”, 

#22


1 导出===>jar
2 利用打包插件

#23


打包的的jar 里面是 有个main程序如果  但是双击 jar文件  没有反应  要到指定路径才能运行

可不可以双击  jar  文件 然后出现像 doc那样的 视窗 里面就是程序 在运行了  

请问可不可以啊

#24


引用 23 楼 wolililaile 的回复:
打包的的jar 里面是 有个main程序如果  但是双击 jar文件  没有反应  要到指定路径才能运行

可不可以双击  jar  文件 然后出现像 doc那样的 视窗 里面就是程序 在运行了 

请问可不可以啊


自顶

#25


首先将你的文件编译好 

用JAR 源文件  目标文件  命令打包成JAR文件 

之后用压缩软件打开这个JAR文件包,打开META-INF/MANIFEST。MF文件,在main-class:后面填上有MAIN主函数的CLASS类名,保存 

双击即可运行。

#26


jar -vch

#27


在Eclipse 环境工程下面,直接导出jar

#28


   'javac' 不是内部或外部命令,也不是可运行的程序 
或批处理文件。 
    1、环境变量没有设置好。
    2、文件后缀名隐藏问题。
    3、根本没有装好jdk,建议换个试试!

#29


请楼主把上边的回答给看完。。。

#30


你是用Eclipse在编写吧 装个fatjar插件就好了

#31


我都是用winrar

#32


学习学习学习

#33


该回复于2010-11-10 11:01:29被版主删除

#34


我也打包不了啊。。。。

#35


路径program file 中间有个空格不好....

#1


1.工具:eclipse v3.4.1


2.撰写如下代码:


package com.william.test.jartest;

public class JarTest {

public JarTest() {

   System.out.println("This is JarTest.");

}



/** * @param args */

public static void main(String[] args) {

// TODO Auto-generated method stub

JarTest obj = new JarTest();

System.out.println(”This is main method.”);

}

}


3.右键点击项目根结点,选择”export”,




4.在”Select an export destination”中选择”Java”-”JAR file”

5.”Next”后,在”JAR Export”中勾选你要打包的项目

6.在”Export destination”中选择你要存放jar包的路径,本例中是”E:\Code\fortest.jar”

7.”Next”后,没有什么需要特殊设置的,继续”Next”

8.接下来是设置Manifest内容,最重要的是选择Main Class的路径,既通过java -jar命令后,默认执行的类。在本例中选择com.william.test.jartest.JarTest

9.”Fin

#2


你的Java环境没配好,百度下...

#3


晕  我说要 手动了  在doc 下 如何打包

#4


引用 2 楼 justinavril 的回复:
你的Java环境没配好,百度下...


我才晕  小熊啊 是我在提问啊 

#5


引用 3 楼 jazzbond 的回复:
晕  我说要 手动了  在doc 下 如何打包


我才晕  小熊啊 是我在提问啊 害我还引用错

#6


java工具之javadoc和jar 
1,javadoc 
注释标记 /**   */格式 
如: 
/** 
*Title:Killer类<br> 
*@author Killer 
*@version 1.00 
*/ 
其中<br>表示换行,但是有@标志会自动换行 
下来对Killer构造方法批注 
/** 
*这是Killer类的构造函数 
*@param name Killer的名字 
*/ 
其中@param <参数名称><参数说明> 
使用说明: 
javadoc -d Killer -version -author Killer.java 
-d用来说明它后面跟的是文件存放的位置 
-version和 -author说明文件要求加入版本信息和作者信息 
还有对哪行进行注释那么注释文字就在它的前一行开始加. 
private的注释一般不会发布因为它关系到你类的内部结构但是如果你要发布的话可以加上-private参数 
2,jar 
1.jar cf test.jar test 
在当前目录生成test.jar文件,如果已经存在那么覆盖它 
-c创建新文档 -f 指定文档名 test是对test文件夹进行操作 
2.jar tf test.jar 
仅列出test.jar文件的所有目录和文件名列表 
3.jar xf test.jar 
解压test.jar文件到当前目录 
4.注意问题 
如果目录如下: 
+----c 
   +----myjava 
       +----test1 
           +----test1.class  
       +----test2 
           +----test2.class 
需要将他们压缩成myjava.jar 
运行c:>jar cvf myjava.jar myjava/* 
则会得到目录结构如下myjava/myjava 
显然不是我们想要结果同时也不能正常使用 
改正方法 
c:\myjava>jar cvf myjava.jar *  

没看清楚,其实都差不多,用命令

#7


引用楼主 wolililaile 的回复:
小弟在网上看了很多资料 还是不懂 我有一个HelloWorld的java项目 在 E:\MyEclipse 7.0M1\workspace2 工作区里

里面有  bin文件夹  src文件夹  还有 .classpath  和  .project

然后按照网上的在doc 用 javac HelloWorld.java jar cvf hello.jar HelloWorld.class

居然说 'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

里面就只有两句话

package com.hello;

public    class    HelloWorld{ 
    public  static  void  main(String[]  args){ 
    System.out.println(“你好! 世界”); 
  } 
  }


如何手动打包成  jar 啊 而且可以运行  网上我都看的有点头晕


是不是我的贴  不够清楚啊

#8


javac  ke yi yong
ni mei you pei hao lu jing

#9


环境变量有问题

#10


急啊  为什么老说  

'jar' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

'javac' 不是内部或外部命令,也不是可运行的程序 
或批处理文件。 

要如何配置啊



#11


1、进入工作目录建一个文件menefest,内容:Main-Class:MyEclipse 7.0M1.workspace2.HelloWorld
2、输入命令jar cvmf menifest HelloWorld.jar HelloWord.jar MyEclipse 7.0M1.workspace2

#12


我的jdk在 C:\Program Files\Java 啊  可为什么 jar 和javac 都不能用

#13


还要配置一下环境变量,网上搜下配置JAVA环境变量,照着配下

#14


虽然 生成了  jar了 
 可双击运行出现
Failed to load Main-Class manifest attribute from 
C:\Program Files\java\jdk1.5.0\bin\h.jar

我是把 HelloWord.class 和  hello.mf 拷贝到 C:\Program Files\java\jdk1.5.0\bin 下

hello.mf  内容 这样对不  Created-By: Melody Main-Class: HelloWord 

#15


打个包怎么这么难啊

#16


网上下个fat jar很好用啊

#17


你的环境变量有问题!你把你的环境变量重新配置下!

#18


配置环境变量

#19


首先你的java 环境变量没配好 

在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。        首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、 “path”、“classpath”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和classpath是不存在的。

 

 

    一:点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径 “C:\jdk1.6”。(注:如果安装的路径不是磁盘C或者不是在jdk1.6这个文件夹,可对应修改。以下文字都是假定安装在C:\jdk1.6里面。)

    二:其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为 “.;%JAVA_HOME%\bin”,(其中“%JAVA_HOME%”的意思为刚才设置JAVA_HOME的值),也可以直接写上“C: \jdk1.6\bin”

     三:最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%JAVA_HOME%\lib \dt.jar;%JAVA_HOME%\lib\toos.jar (要加.表示当前路径)”,与相同“%JAVA_HOME%有相同意思”

 

 

          以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java -version”,如果安装成功。系统会显示java version jdk"1.6.0"。

确保安装在C盘文件名为jdk1.6,环境变量直接复制就可以了,在dos界面中输入javac来查看该命令是否合法,同样输入java来查看该命令是否合法

 

          这样环境变量就设置好了,下面进行对PATH,CLASSPTH,JAVA_HOME的讲解

 

以下为置JAVA_HOME,CLASSPATH,PATH的目的:

1,设置JAVA_HOME:

     一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;

     二、归一原则, 当你JDK路径*改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!

     三、第三方软件会引用约定好的JAVA_HOME变量, 不然, 你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题.

 

2,设置CLASSPATH:

        这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子: 你编译一个JAVA程序---A.java, 会得到一个A.class的类文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:\"), 执行java A, 将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:\"再运行java A, 看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件!

 

3,设置PATH:

        道理很简单, 你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗, 当然不会, 于是, 你可以选择把 %JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令了.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行.)

我从网上弄的!!!
 

完成后 用jar 命令打包成.jar文件

#20


首先把环境变量设置好,然后进入开始--运行--cmd  然后输入  jar  如果正常显示的话,然后
如:将两个类文件归档到一个名为 classes.jar 的归档文件中:就可以这样写
jar cvf classes.jar Foo.class Bar.class

#21


右键点击项目根结点,选择”export”, 

#22


1 导出===>jar
2 利用打包插件

#23


打包的的jar 里面是 有个main程序如果  但是双击 jar文件  没有反应  要到指定路径才能运行

可不可以双击  jar  文件 然后出现像 doc那样的 视窗 里面就是程序 在运行了  

请问可不可以啊

#24


引用 23 楼 wolililaile 的回复:
打包的的jar 里面是 有个main程序如果  但是双击 jar文件  没有反应  要到指定路径才能运行

可不可以双击  jar  文件 然后出现像 doc那样的 视窗 里面就是程序 在运行了 

请问可不可以啊


自顶

#25


首先将你的文件编译好 

用JAR 源文件  目标文件  命令打包成JAR文件 

之后用压缩软件打开这个JAR文件包,打开META-INF/MANIFEST。MF文件,在main-class:后面填上有MAIN主函数的CLASS类名,保存 

双击即可运行。

#26


jar -vch

#27


在Eclipse 环境工程下面,直接导出jar

#28


   'javac' 不是内部或外部命令,也不是可运行的程序 
或批处理文件。 
    1、环境变量没有设置好。
    2、文件后缀名隐藏问题。
    3、根本没有装好jdk,建议换个试试!

#29


请楼主把上边的回答给看完。。。

#30


你是用Eclipse在编写吧 装个fatjar插件就好了

#31


我都是用winrar

#32


学习学习学习

#33


该回复于2010-11-10 11:01:29被版主删除

#34


我也打包不了啊。。。。

#35


路径program file 中间有个空格不好....