2017-11-18 25 views
1

我想,标题是自描述性的。我就加我的进口,如果该事项:仅仅是一个“javaw.exe”足以在未安装JRE的Windows机器上运行简单的Java应用程序?

import javax.sound.sampled.*; 
import javax.swing.*; 
import java.awt.*; 
import java.io.*; 
import java.lang.management.ManagementFactory; 
import java.lang.management.RuntimeMXBean; 
import java.text.SimpleDateFormat; 
import java.util.*; 
import java.util.concurrent.TimeUnit; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

所以将只是一个单一的javaw进程可执行足以运行在Windows机器上这个程序,如果已经安装了JRE没有?

+1

不,它至少会错过所需的本地库(.dll/.so) – Aaron

+1

@Aaron和JARs ofc。 – m0skit0

+0

好的,谢谢!在这里问一个问题比在我的电脑上卸载JRE并自己尝试它更容易;) – Enirsa

回答

3

Java运行时不仅仅是一个可执行的二进制文件。

它包含导入语句所使用的所有编译类。 。和其他各种二进制文件(如DLL},也

所以,简单的答案是:没有

Java9即将推出新的工具,将允许您创建一个二进制神器只包含那些类,是否需要你的应用程序或准确地说:你的应用程序需要的那些模块 但是,这仍然意味着你必须采取一些措施来利用这一点

+0

这就是我所怀疑的。谢谢! – Enirsa

+0

@GhostCat如果您指出的新工具是使用应用程序类数据共享,那么它将是Java10或更高版本。 – nullpointer

+0

我认为它被称为jlink。它依赖于模块定义。 – GhostCat

0

不,你必须安装JRE以及您可以配置系统变量PATH,但这是可选的,但增加了便利性。

+1

中所述不需要*配置PATH,它只是更方便。 – Aaron

1

您不需要安装JRE,您可以在应用程序内部发送私人应用程序(无需在客户端计算机上安装JRE)。但javaw.exe是不够的。请参阅What are the differences between private jre and public jre?

此外,还有一些安装程序可以将您的应用程序和JRE打包到可执行文件中,并使其看起来好像它是单个正在运行的文件(而不打开它) - 它们映射文件内的文件系统调用)。如果我记得InstallAnywhere可以做到这一点,但可能还有其他安装程序可以。

+1

谢谢,伙计。我已经发现了Launch4j,它的工作就像魅力一样。 – Enirsa

+0

感谢提到http://launch4j.sourceforge.net/ - 没有赶上那一个。似乎它可以在任何平台上用于构建可执行特定JRE的Windows可执行文件或将其捆绑在一起。猜猜那些将是相当大的EXE,但通过其他评论中提到的jlink工具(仅保留您需要的Java VM模块),它确实具有潜力 –

相关问题