Java编写的软件项目如何最终成为可执行文件?

时间:2011-04-26 22:22:10

标签: java executable

我看到有一个源自可执行文件的开源Java编写的软件。一个例子是PDFsam。它与我学到的关于Java是一种多平台,字节码编译的编程语言的所有内容相矛盾。我很迷惑。有人可以解释一下吗?

6 个答案:

答案 0 :(得分:2)

通常,Java程序通过调用java字节码解释器来运行,例如

java -cp myprogram.jar

这适用于任何支持JDK的平台(至少在理论上)。

但有些程序(如Eclipse)会添加特定于平台的代码,因此它看起来更好,在Windows / Mac上运行更顺畅。

这通常由.jar文件周围的.exe包装器完成。

总结一下:

直接提供.exe(或.app)文件的程序不是100%Java。

答案 1 :(得分:2)

对我来说看起来像安装.exe,而不是项目本身。我刚下载并运行它。它将代码安装到我的系统中;它就是下面的所有Java。

看起来启动器也是.exe,但它是一个使用Java的Swing UI:

PDF Split and Merge basic  
Version: 2.2.1 
Console version: 2.4.0e 
Developed by: Andrea Vacondio 
Build date: 31-Oct-2010 
Java home: C:\Program Files\Java\jre6 
Java version: Java(TM) SE Runtime Environment 1.6.0_21-b07 
Max memory: 247Mb 
Configuration file: C:\Program Files\pdfsam\pdfsam-config.xml 
Website: http://www.pdfsam.org

答案 2 :(得分:1)

您熟悉gcj吗?这是将Java代码编译成可执行文件的一种方法。还有其他方法。

答案 3 :(得分:0)

这个应用程序很可能只是一个可执行的启动程序,而不是使用所有必需的参数调用java虚拟机。您可以考虑使用的一些软件:

  1. JS​​mooth
  2. Jar2Exe
  3. Launch4j
  4. 本网站解释了很多关于可执行java文件的内容。 http://www.excelsior-usa.com/articles/java-to-exe.html

答案 4 :(得分:0)

您链接的项目包括启动JVM的批处理文件(windows)和shell脚本(* nix)。如果你查看bin目录,你会看到它们。

答案 5 :(得分:-1)

通过将Java程序编译为可执行文件,可以有多种方法来优化它们。请记住,这意味着它特定于它为其编译的平台。

正如您正确指出的那样,Java的好处(一次编写,在任何地方运行)都会丢失。但是,如果您希望运行一个可以控制硬件和服务器环境的封闭系统,那么提取每一盎司性能可能非常重要。