我有几个弱弱的问题想向大家请教请教:1、我已经做好了一个Java应用程序,打包成JAR文件,如何使得它能够运行在没有安装Java环境的机子上?
2、接1,有哪些发布方法,分别是什么?自带jre的或不带jre的?或者bat文件?
3、我这个应用程序要使用到第三方JAR包,又怎么办?
4、我在终端下设置了CLASSPATH=.;E:\Java\lib,关闭终端后到【我的电脑】【属性】【高级】【环境变量】查看,发现CLASSPATH又改回来了,是不是意味着终端下CLASSPATH、JAVA_HOME、PATH等设置不是全局性的?
5、再回到2,如何运用bat文件新建Java发布?谢谢各位了,虽然学了这么久,还以为自己很懂,原来做好了临发布的时候倒是犯难了,对CLASSPATH和PATH的理解不深至今终于发生了影响,想自己做好了东东运行在没安装Java的环境下,终于暴露了自己学习的疏漏。很感谢各位的支持,回复加分。

解决方案 »

  1.   

    deployment  一般来说  都是用antant是个好东西  LZ好好学学哇  你上面的这些东西只有2对ant来说有点困难 但是应该也可以
      

  2.   

    用ant可以的啊,这里有个ant简明教程http://download.csdn.net/source/242740
      

  3.   

    Ant我还没学过,可不可以不用Ant工具做成满足上面要求的JAR文件的?
      

  4.   

    1 、2.自带jre比较好,
    3. 在打包jar时,设置manifest,指定Classpath
    4. 在终端设置只对当前终端有效。
    5. 自带jre,写bat需要一定的技巧。也可以使用诸如winrun4j等工具生成一个.exe的启动器。
      

  5.   

    ls看好,lz说“1、我已经做好了一个Java应用程序,打包成JAR文件,如何使得它能够运行在没有安装Java环境的机子上?”如果你只是做成jar包当然不行,除非你把java程序做成系统的应用程序才行,因为jar包必须运行在jvm上。如果做成.exe文件可以参考http://www.blogjava.net/sunking/archive/2005/08/16/10272.html
    “3、我这个应用程序要使用到第三方JAR包,又怎么办?”你的意思不就是要引入jar包,用jar包中的类吗,直接和你的jar包打在一起,在.java文件中用import引入jar包中的类就可以了,这个jvm会帮你处理
    “4、我在终端下设置了CLASSPATH=.;E:\Java\lib,关闭终端后到【我的电脑】【属性】【高级】【环境变量】查看,发现CLASSPATH又改回来了,是不是意味着终端下CLASSPATH、JAVA_HOME、PATH等设置不是全局性的?”这句话我不太理解,什么叫又改过来了,你在系统环境变量中设置的就是系统的(即你所谓的全局),如果你只是在dos窗口set path=这种形式设置变量只是用户的,不会改变系统的坏境变量,话又说回来,如果你设置了系统的,就不用在set path=了
    “5、再回到2,如何运用bat文件新建Java发布?”实际上.bat文件是内嵌到.exe文件中的,你在xp系统中运行的.exe文件实际上是在运行一个个.bat文件,所以只要会将java装换成exe就是在进行批处理的转换
      

  6.   

    看看exe4j 吧
    对jar打包,可以把jre环境打包进应用程序
      

  7.   

    http://www.cjsdn.net/post/view?bid=1&id=100758&sty=3
    可以参考一个这里的打包方法
    http://java.chinaitlab.com/tools/38659.html
      

  8.   

    目录结构:
    jre  (从jdk安装目录拷贝过来的,看你的需要,可以把一些用不着的delete,精简版jre)
    lib (包括自己的jar包和第三方jar包等其他资源)
    run.bat 文件run.bat,内容:
    %cd%/jre/bin/java -classpath "./lib/mail.jar;./lib/skinlf.jar;./lib/MailChecker.jar;./lib/themepack.zip" com.socix.mailalert.pane.ClickPane其中 -classpath里面 MailChecker.jar是我自己打的那个jar包,剩下的都是第3方资源。
    com.socix.mailalert.pane.ClickPane是我自己的程序的入口类。然后把整个目录打包成一rar,指定解压后运行run.bat就可以。
    如果要打包成exe,请baidu or google : Jsmooth 或 exe4j
      

  9.   

    为什么我设置了Classpath而没有用呢?我在编Servlet的时候,要用到Tomcat包里的servlet-api.jar文件,
    TOMCAT_HOME=E:\Apache\Tomcat 5.5
    CLASSPATH=.;%JAVA_HOME%\lib\*.jar;%TOMCAT_HOME%\common\lib\servlet-api.jar;
    为什么编Servlet程序的时候还是会提示找不到javax.servlet、javax.servlet.http.......包啊??这是长期困扰我的关于导入第三方jar包的问题。恳求良解!
      

  10.   

    java爱好者可以加此群我们一块学习:100756746
      

  11.   

       bat脚本搞定.
         1.将jvm exe文件,和你和程序文件,都放到同一个目录下,打一个rar包
          2.bat脚本,执行exe文件,进行安装jvm(或者带上jdk)
         3.bat脚本设置环境变量,set CLASSPATH 和 set PATH 写上路径即可
          4.bat脚本运行project.     另,bat也可以生成exe文件.  还有一种方法,可以生成客户端安装程序,写个脚本生成安装程序.
      用ant也行,只是ant也要设置环境变量,多走一步路
        
      

  12.   

    我明白了,看了一下林信良先生的《Java JDK 6学习笔记》:
    原来在JDK6中,可以在不设置CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib.rt.jar;%CLASSPATH%的情况下正常使用Java,因为JDK6已经帮我们设置好了,甚至连PATH=%JAVA_HOME%\bin;%PATH%也可不设置,因为JDK6在安装好之后会将java.exe、javaw.exe、javaws.exe自动复制到C:\Windows\System32\文件夹中,真是路漫漫其修远兮啊
      

  13.   

    这就意味着在终端下可直接使用java、javaw、javaws和javac了
      

  14.   

    错了,javac不可以使用,因为javac.exe没有复制到C:\Windows\System32\文件夹中,也没有被PATH搜索到