首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从.exe创建.java文件,或者可能不是正确的方法?

从.exe创建.java文件,或者可能不是正确的方法?
EN

Stack Overflow用户
提问于 2014-01-08 21:36:48
回答 4查看 417关注 0票数 1

作为一个comp学生,我主要是用Java编写程序,我所做的就是制作.java文件并提交给教师以获得分数。

我想知道如何从.java文件转到我在计算机中看到的.exe文件。

我查阅了谷歌和这个网站,他们说的没有意义,因为他们说,唯一合适的方法是创建.jar文件,这需要安装在其他计算机上的.jar环境,而我的生活中还没有看到任何.jar文件。

此外,他们还说,使用像launch4j这样的软件会扼杀Java的真正用途,并可能导致错误。

我很困惑。也许Java不是一种制作.exe文件的语言?那是什么语言呢?我如何制作.exe文件?在专业程序员中,最常见的方法是什么?

注意:我所说的.exe文件并不是指安装文件,而是指程序本身,如starcraft2.exeutorrent.execalculator.exe等。

EN

回答 4

Stack Overflow用户

发布于 2014-01-08 21:49:14

Java程序不生成.exe文件,而是生成.jar,因为在编译时,Java代码不会变成机器代码,而是字节码。然后将字节码文件合并到.jar文件中(以类似于.rar.zip文件的方式),并通过Java执行。

要创建一个.jar文件,您可以查看此http://docs.oracle.com/javase/tutorial/deployment/jar/build.html教程

如果希望通过编程创建.exe文件,则需要学习C、C++、Assembly和C#。

既然您已经了解Java,如果您愿意,我建议您进入C#,因为这两种语言非常相似。

票数 1
EN

Stack Overflow用户

发布于 2014-01-09 00:59:50

教育

至少澳大利亚的情况是,大多数教育机构使用的是most,而不是Windows,所以Windows风格的.exe不会在这些机器上运行。我哥哥在高等教育中工作,他们在那里大力推行OS。我表妹最近向我抱怨,她儿子的学校要求他们为学生买一台基于Mac的机器。我向她解释说,这主要是因为苹果花了很多心思让他们的操作系统和应用程序使用起来非常容易,以至于学生能够花更多的时间去做事情,而不是试图弄清楚如何使用来做事情(我运行Windows是因为它对我来说更便宜)。

他们所需要的

因此,如果您的老师想看代码,他们将需要一个.java文件。如果他们乐于“查看已完成的可执行文件”,那么他们可能需要一个基于OS的DMG,或者可以使用基于Java的Jar。

分布

在过去的日子里,人们会在软盘或光盘上分发应用程序,但是时代在变化,现在优势已经明显地转向通过互联网或网络进行分发。现在有更多的机器已经“准备好了”,而不是软盘或CD驱动器(主要是因为上网本电脑之类的东西)。

在初始发行版之后,还会出现“更新和错误修复”,并且网络再次超过磁盘。

长期以来,Java一直使用Java Web Start来进行基于internet的分发和更新。当然,JWS可以在Windows、OS和*nix上工作--所有为其提供Java运行时的平台。

插件的可用性

当然,是Java应用程序。需要Java插件,因此Sun开发了部署工具包脚本。这是一个很小的脚本,我们把它放在web (intranet)页面中,应用程序就是从这个页面开始的。是分布式的。

在提供下载按钮之前,脚本会检查插件的一个合适的最低版本。如果用户没有它,他们将在下载和安装过程中被引导。

安全性

随着时间的推移,操作系统制造商也在打击越来越多的安全性。在Windows上,有用户访问控制。Sun早就意识到了这些危险,并试图通过强制Java applet在安全沙箱中工作来保护Java的声誉,如果applet需要放宽安全限制来执行打印或访问本地文件系统等操作,则代码需要由开发人员进行数字签名,并在出现提示时由最终用户信任。Sun会自动将安全性转移到应用程序中。使用JWS启动。

在Oracle发现并修复了最近的安全漏洞之后,他们决定,即使是沙箱代码也需要进行数字签名,不久代码就需要由证书颁发机构颁发的有效证书进行签名。这些组织致力于确定他们向其颁发证书的人或机构,因此获得“匿名代码”到机器上的前景受到严重限制。

对于开发人员来说,获得证书和数字签名代码可能会带来麻烦,这可能会使.exe看起来很有吸引力,但有了基于微软的用户访问控制,大多数.exe文件也会得到数字签名。

结论

坚持纯粹的基于Java的应用程序路线。使用Java语言开发。制作.exe的唯一真正优势是,可执行文件与Windows的“外观和感觉”稍微协调得更好。但是如果您需要“真正的Windows”外观,最好使用基于Windows的语言(即,而不是Java)来开发它。这样做也比较容易,原因有二:

  1. Java坚持在所有操作系统上都可以支持的一组核心功能,因此,如果我们想要超越这些功能,我们有时需要包含本机代码。例如,没有基于Java的屏幕保护程序,也没有基于Java的操作系统工具。
  2. 使用基于Windows的语言和IDE开发GUI会稍微快一些,因为程序员可以使用拖放来实现它。为了使一个健壮的跨平台GUI,Java开发人员需要理解和使用Java布局,这可能是一个陡峭的学习曲线,而且不利于构建被拖放。
票数 1
EN

Stack Overflow用户

发布于 2014-01-08 21:47:35

.java文件是Java程序的源文件。(因此,人类可读的语言)这些需要编译成计算机理解的语言(或者在Java的情况下,Java运行时所理解的语言)。这些是.jar文件。Jar文件实际上并不是由Windows本身运行的(这就是.exe文件的用途),因此没有一种将.jar文件转换为Windows可执行文件的真正方法。

“但我的世界有一个.exe发射器!”我听到你说。没错!但是minecraft.exe只是一个指向minecraft.jar的链接,它位于你的“我的世界”文件夹中!我认为,这是最接近于使用Java的“纯”exe文件。

因此,要制作一个“真正的”.exe程序,您需要一种不使用VM并由Windows本身执行的语言。一些例子是C、C++或微软自己的.NET语言,如C#和Visual。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21007064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档