用户操作
[即时聊天] [发私信] [加为好友]
石头ID:shili150
1344次访问,排名2万外好友70人,关注者73
努力,拼搏,为了生活
shili150的文章
原创 10 篇
翻译 0 篇
转载 1 篇
评论 3 篇
最近评论
hdnero:wow power leveling
wxinb:写得不错!
nihuajie05:你懂日语哦...以后我抱点碟片过来,你要负责帮我翻译哦~~~
文章分类
    收藏
      相册
      gei wo
      pic
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 不需要java环境的java程序收藏

      新一篇: jdom解析xml文件出现的一些错误 | 旧一篇: bat常用命令(转载http://hi.baidu.com/vanciki/blog/item/77b34aed155eb9d4b31cb151.html)

      说是不需要java环境的java运行程序,其实是不可能的

      但是我们在公司的时候经常会遇到这种情况,当你用java为客户写个小工具的时候,往往客户会要求不要安装,不要环境,对于用java语言来完成这样的任务我觉得是有点无理取闹

      sun与microsoft的不和,导致microsoft 没有在系统上预装jre,所以要运行java程序,必须要有java环境


      我这里有几个小方法,不用安装jre在客户机上,其中有我自己运行成功的例子,也有在网上搜集的例子,不过都经过我的测试,可以用一下

      下面就是几个方法:



      方法1:

      最近接的一个小项目,用java做了一个Application 但是用户完全不懂java,不可能叫用户去安装JRE,

      再设置环境变量,于是把JRE一起放到了软件里面,方法如下

      新建一个目录,作为打包的目录,比如ring目录,在这个目录里建一个java的目录,把jre目录下的bin

      和lib复制到该目录,然后在 ring目录下再新建一个lib的目录,把你的项目用到的jar和你自己写的jar

      都放到该目录,下面在ring目录下建二个bat文件

      第一个命名为setenv.bat,文件的内容是:

      set cp=%cp%;%1

      第二个bat文件,名字可以随便起,到时候运行项目只要运行这个bat就可以了,内容是:

      @echo off
      set cp=
      for %%i in (".\lib\*.jar") do call setenv.bat %%i
      for %%i in (".\jre\lib\*.jar") do call setenv.bat %%i

      rem 这一行最后是你的项目的启动类
      start .\java\bin\java -classpath %cp% ringpro.Frame1
      ok,大功告成,呵呵



      方法二:

      将java源代码编译成windows里的.exe可执行文件,几种java转exe的工具!
      几种java转exe的工具,进行一下比较,谈谈自己的看法:

      1. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。
      注:现在已经找不到,不提供了,被人家收购了。

      2. 利用微软的SDK-Java 4.0所提供的jexegen.exe创建EXE文件,这个软件可以从微软的网站免费下载,

      地址如下:
      http://www.microsoft.com/java/download/dl_sdk40.htm

      jexegen的语法如下:

      jexegen /OUT:exe_file_name
      /MAIN:main_class_name main_class_file_name.class
      [and other classes]

      注:没有试过

      3. Visual Cafe提供了一个能够创建EXE文件的本地编译器。你需要安装该光盘上提供的EXE组件。
      注:没有试过

      4. 使用InstallAnywhere创建安装盘。
      注:很不错的工具。
      但就是要>8M(带jre),还有一种是>1M的(不带jre)。
      但是它可以编译成各种平台上可以使用的exe程序。

      5. 使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的地址获得:
      http://www.alphaworks.ibm.com/tech/hpc

      注:没有试过

      6. JET是一个优秀的Java语言本地编译器。该编译器可以从这个网站获得一个测试版本:
      http://www.excelsior-usa.com/jet.html

      注:不喜欢。
      编译好的程序还是jre的,听说正版的可以不能jre。安装好还要编译,我用了30分钟。

      7. Instantiations公司的JOVE
      http://www.instantiations.com/jove/...ejovesystem.htm
      JOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede已经不复存在了。

      注:太烦了,老是出来一个对话框
      用过,会出来一个对话框,表示这是jove公司的产品。

      8. JToEXE
      Bravo Zulu Consulting, Inc开发的一款本地编译器,本来可以从该公司的网页上免费下载的,不过目

      前在该公司的主页上找不到了。
      公司主页:http://www.bravozulu.com/
      下面这个FTP上曾经有过这个软件,不知道现在是不是还在:
      ftp://race.dlut.edu.cn/pub/java/tools/jet

      注:很烦了,老是出来一个对话框,但是没有想到我找到了crack,在google上找到。
      现在去掉了那个对话框后,我很喜欢这个工具,虽然它需要jre,但是文件只有100多K,很好哦。

      9.Exe4j
      很不错

      10.jbuilder
      这个工具不用多讲了,在jbuilder6.0以前的(包括6.0),是不能生成exe文件的,所以可以用如下的方

      法实现。这可以人家高手想出来的,我只是帮着宣传一下。
      还有jbuilder7.0开始都可以生成exe文件。

      这个是Borland不公开的使用技巧,能够通过JBuilder来制作exe文件来启动Java文件。
      JBuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Java程序,可以

      出现或者不出现console窗口。想做到这些,需要JBuilder的bin目录下的这些文件:
      JBuilder.exe
      JBuilderW.exe (可选)
      JBuilder.config
      jdk.config
      JavaLauncher.dll
      “JBuilder.exe”是一个通用的可执行外壳文件,用以启动Java程序,”JBuilderW.exe“好像是

      javaw.exe一样,它把” JBuilder.exe”包装起来,但是运行时候不显示那个console的窗口。使用这些

      文件的关键是文件名。“JBuilder.exe”查找一个文件叫”JBuilder.config”的配置文件,里面包含了

      运行Java程序的必须信息。同样的”JBuilderW.exe”查找” JBuilder.exe”来启动不带Console窗口的

      Java程序。如果把JBuilder.exe重命名为”foo
      .exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”JBuilderW.exe”被重命名为”

      fooW.exe”,它会去寻找”foo.exe”文件。
      说到这里,聪明的读者应该猜到怎样利用JBuilder.exe来启动应用程序了。只要把

      JBuilder.exe,JBuilerW.exe, JBuilder.config改名成相应的文件名,在JBuilder.config里面指定主类

      和类路径,就能够通过执行JBuilder.exe (或者被改名后的exe文件)来启动Java应用程序了。下面是用

      本机为例。
      Borland JBuilder 5被安装在E:\jbuilder5\目录下,在E:\jbuilder5\bin\下建立一个temp目录,然后

      把JBuilder.exe, JBuilder.config,JavaLauncher.dll,jdk.config四个文件拷贝到E:\jbuilder5

      \bin\temp\ 目录下,然后在这个目录下建立一个hello目录,在这个目录下生成一个hello.java文件,

      即E:\jbuilder5\bin\temp\ hello\hello.java文件,
      //hello.java/
      package hello;
      public class hello{
      public static void main(String s[]){
      System.out.println("Hello, Exe file!");
      }
      }
      编译成class文件,然后打开Jbuilder.config文件,作相应的修改:
      在JBuilder.config里面找到下面两行
      # Start JBuilder using the its main class
      mainclass com.borland.jbuilder.JBuilder
      修改为
      # Start JBuilder using the its main class
      mainclass hello.hello
      addpath E:/jbuilder5/bin/temp/
      addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在JBuilder/bin目

      录下的config_readme.txt里面找到详细说明。
      然后将jdk.config里面的javapath修改成相对的路径,例如原来是
      javapath ../jdk1.3/bin/java
      修改成
      javapath ../../jdk1.3/bin/java
      最后
      将JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
      现在执行foo.exe文件
      至此,通过修改JBuilder来使用exe文件启动自己的Java应用程序已经完成了。
      但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将Jar文件打包进入exe文件!
      假设利用上面的文件,生成hello.jar包,
      jar cvf hello.jar hello\*.class
      然后将jar包附加到JBuilder.exe后面去,
      copy /b ..\JBuilder.exe+hello.jar foo.exe
      在foo.config(JBuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径:
      addpath E:/jbuilder5/bin/temp/foo.exe
      然后执行,foo.exe
      看到了么?一个含jar包的exe文件被执行了!
      这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文件尾部是不

      要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容易的被执行。
      请注意:读者如果使用这个功能,得自己承担可能带来的风险,因为Borland对这个功能不提供官方的支

      持!
      方法二的情况是安装jbilder的时候我在bin的目录下没有找到javalanuch.dll文件,所以没有实践,不知道为什么会没有这个文件,难道是jbuilder故意缺省的?




      方法三



      用工具Excelsior JET 工具
      可以生成
      1.安装文件
      2.目录文件(就是不用安装)
      3.服务器上的安装文件


      步骤,
      首先要有一个可执行的  xxxx.jar
      打开工具,选定目录

      添加命令行

      java -jar xxx.jar,其中主类工具会自动搜索的,我想搜索的方法应该是根据 MANIFEST.MF中的 main—class来的吧
      一路next下去,到最后run完以后不要关闭 工具,点击 package选项,进入另一个界面,其中第三步有一个选项是打包程序的时候包含本地的 jre,这个要勾选上

      最后就是next就行了,



      本来一个几k的class文件,最后成了40多m的exe文件,这是汗啊……

      发表于 @ 2008年04月24日 13:45:40|评论(loading...)|编辑

      新一篇: jdom解析xml文件出现的一些错误 | 旧一篇: bat常用命令(转载http://hi.baidu.com/vanciki/blog/item/77b34aed155eb9d4b31cb151.html)

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © 石头