当前位置:  技术问答>java相关

Java 可以编译成可执行文件吗

    来源: 互联网  发布时间:2015-02-06

    本文导语:  Java只能解释执行吗,如果真是这样,编好的程序怎样发布呢 | 我在此引述一篇文章,希望能有所帮助。 How can I run my Java program as a native executable? - by Borland Developer Support Staff Abstract:A...

Java只能解释执行吗,如果真是这样,编好的程序怎样发布呢

|
我在此引述一篇文章,希望能有所帮助。

How can I run my Java program as a native executable? - by Borland Developer Support Staff

Abstract:A neat trick in JBuilder (3.5 and later) that allows you to run your app as an exe.

Question:
How can I use JBuilder to make my Java program into an native executable?  
  
Answer:
JBuilder does not feature a native compiler but there is a neat feature in JBuilder that will allow you to run you Java programs from an executable, with or without a console. To do this, you will need the following files from your JBuilder "bin" directory (assuming Windows, use comparable files if on Solaris or Linux): 

JBuilder.exe 
JBuilderW.exe 
JBuilder.config 
jdk.config 
JavaLauncher.dll 
"JBuilder.exe" is basically a general purpose executable wrapper for launching Java programs, and "JBuilderW.exe" just wraps "JBuilder.exe". The key to using them is in the file names. "JBuilder.exe" looks for a file called "JBuilder.config" to find the configuration information necessary to launch the Java program. Similarly, "JBuilderW.exe" looks for "JBuilder.exe" and launches it without a console. If you rename the file to "foo.exe" then it will look for "foo.config" for configuration information. The same holds for "JBuilderW.exe". Rename it to "fooW.exe" and you will be able to luanch you java application without a console window, assuming that you have everything setup in "foo.config". For hints on setting on the ".config" file, see the "JBuilder.config" file as well as the "Readme.txt" file in your JBuilder 3.5 "bin" directory. 

This little feature is enough to give you a way to launch your Java application from an exe, but now for the fun part. Let's say you have your Java program deployed to "myApp.jar". You've created a "foo.config" that specifies the location of the JDK so that the launcher can launch your program and you've renamed the launcher to "foo.exe". Here's what to do next: 

Combine "foo.exe" and "myApp.jar" into one file. To do this in DOS you use a command like: 
COPY /B foo.exe+myApp.jar foo.exe

Add "foo.exe" to the classpath in the "foo.config" file with the "addpath" directive: 
addpath C:/stuff/foo.exe

To recap, you should now have these files in the same directory: "foo.exe"; "foo.config"; and "JavaLauncher.dll". You should now be able to use "foo.exe" to launch your Java program. Additionally, if you have "fooW.exe" then you will be able to launch your program wihout a console. 

Why does it work? Simply put, the structure of executables and jar/zip archives makes this possible. An executable has all of the "important stuff" at the front of the file, so you can attach any amount of junk (or a jar file) onto the end of it. A jar (or zip) file on the other hand, has all of the "important stuff" at the end of the file. So, by combining the two, the executable portion can execute without problems and the executable can also be used as an archive on the class path (assuming that Sun doesn't start checking for "correct" file extensions). 

Enjoy! 
 


|
用installanywhere做成安装包。安装会自动产生exe文件。
或用jet把class文件做成exe文件。

|
download : http://www.sun.com/solaris/jit/
jit can compile to exe file

|
可以用一些软件打包成exe文件。如果想跨平台应用,还是用jar发布比较好。

|
用 Visual J++ 吧,虽说不是pure java,可是能很容易的达到你的要求。

    
 
 

您可能感兴趣的文章:

  • 谁有JAVA的反编译器?就是把.class反编译成.java的工具?或者有decafe pro的注册机?
  • 请问用javac编译一般*.java能通过,但不能编译Servlet写的*.java.提示javax.servlet.http不存在。
  • 请教:有没有把java编译好的.java和.class文件编译成各个平台下的可执行文件??.exe?着急着急
  • 编译JAVA程序的时候,如果需要的JAR不在CLASSPATH,有什么办法能成功编译吗???
  • 求购java的反编译器,要求反编译效果好的-急!
  • 用jdk编译Java能不能让编译生成的.class文件自动保存到一个文件夹下?
  • 反编译了一个Java类,但是发现里面由好多同名函数,同时参数一样,返回值不同,然后就编译不回去了!
  • 我想把Java源码编译本地的exe,因为用jvm太慢了,但是不知用啥编译器?
  • Java反编译器 DJ Java Decompiler
  • JAVA编译的CLASS文件可以反编译为JAVA文件吗?
  • 请问哪个JAVA反编译软件可以反编译加密过的CLASS???
  • 请问:在哪里能找到JAVA编译器和解释器?我是一个初学者。我想学JAVA。
  • xx.java继承yy.class,编译xx.java为xx.class时应怎样书写?(谢谢)
  • Java反编译器 Java Decompiler
  • 用什么工具可以把JAVA的.CLASS文件反编译成.JAVA文件??
  • 怎样编译java, C++
  • 大哥大姐们小弟刚学JAVA,对它没点头绪啊!能告诉我JAVA在什么环境下编写代码和编译吗??
  • 在哪里能找到JAVA编译器和解释器?我是一个初学者。我想学JAVA。
  • 我初学JAVA编译书上的小程序。编译总是通不过(在线等待)。
  • 新手请求帮助:Java编译器有哪些?J2EE和Java有什么关系?
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • 如何用JAVA执行本机Linux操作系统的可执行文件?一定给分!在线等待!
  • 我刚看java,知道它的目标代码是解释执行的,目标执行速度快吗?
  • 怎么在java程序中执行系统命令或其他可执行程序(像批处理一样)?
  • 请问JAVA如何执行(调用)操作系统命令,如dir,然后把执行结果存入变量或文件,谢谢!
  • 谁有办法用java执行于java.exe不在一个目录的class文件?
  • 在java中如何启动非java的可执行程序?
  • java里有什么函数可以检查 java 代码并执行它?
  • 请问大侠:都说JSP比ASP执行速度快, 但这和JAVA本身速度慢(靠虚拟机执行) 有何关系???
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行,请高手指点一下
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 保存java.sh文件时,多出一个java.sh~文件
  • 请问把.class文件反编译为.java文件的工具有什么???能恢复到原来的.java文件吗???
  • 一个.java文件中怎样来调用另一个.java文件中的变量及其它东西!
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • java文件复制代码片断(java实现文件拷贝)
  • java读取csv文件示例分享(java解析csv文件)
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • java文件操作之java写文件简单示例
  • java复制文件和java移动文件的示例分享
  • java读取文件内容的三种方法代码片断分享(java文件操作)
  • 编译前的java文件没有,只有class文件
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向 iis7站长之家
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 我在jbuilder中新建一个servlet,源程序为java文件,是怎么从java到servler转换的?
  • 求救!!如何在java程序中调用外部非java的exe文件?
  • 怎样把CLASS文件转成JAVA文件
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 如何从一个.class文件得到它的.java文件?
  • JAVA中如何取得ZIP文件中的文件LASTMODIFY时间?
  • 能不能把java文件编译成可执行文件,但不需要java虚拟机?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3