作为一个新手到Java编程的世界里,这个问题一直猛然一惊我的脑海里。 我首先认为,所有的Java文件都被压缩到applets
,然后跑了,但我很快意识到,这是情况并非总是如此。 可能有人向我解释我们是如何交织实际上我们的Java应用到日常生活的真实的产品?
TL; DR:我们如何实现我们的实际使用的代码?
作为一个新手到Java编程的世界里,这个问题一直猛然一惊我的脑海里。 我首先认为,所有的Java文件都被压缩到applets
,然后跑了,但我很快意识到,这是情况并非总是如此。 可能有人向我解释我们是如何交织实际上我们的Java应用到日常生活的真实的产品?
TL; DR:我们如何实现我们的实际使用的代码?
这取决于应用程序。 有具体取决于您希望您的用户如何使用您的应用程序许多选项。 通常它包装成一个罐子或专门的罐子(WAR,EAR)。
从理论上讲,你可以压缩你的原始目录结构.class
在它的文件,并提供运行shell脚本/指令java
用户命令。 我不建议这样做,因为它是一种非专业的,需要你保持一个shell脚本,你希望能够在其上运行程序的每个操作系统。
Jar文件用于打包库,但你也可以在它的清单文件,上面写着,“当用户双击/执行此操作,运行这一类”。 这个类可以启动GUI或者是无头任务响应参数等。
你可以有小程序 ,像你说的。 这些程序在用户的浏览器中运行。
你可以有一个war文件 ,这是一个打包的Web应用程序的方式。 你把这个给Web服务器,它知道如何部署它,这样就可以访问网页。 一个例子的Web服务器/容器是Tomcat的或码头 。
你可以有一个EAR文件可以包含在它里面其他战争文件。 这是用于需要的JavaEE的功能性(的EJB,JMS队列等)其它部件的应用程序。 应用程序服务器的一个示例是JBoss的或GlassFish的 。
还有Java Web Start的应用程序。 这些都是你可以通过访问网页上运行的应用程序,但他们得到下载到您的计算机,并在用户的计算机上运行(而不是在服务器的后端,就像一场战争/耳朵)。
还有的JavaFX 。 我不知道,虽然任何事情。 通过略读常见问题 ,这似乎是Java的答案, Adobe的Flex 。 您配置UI组件与XML配置。 我不知道的JavaFX应用程序使用的格式,但它说,“部署在桌面上或在浏览器中”。
作为索蒂里奥斯Delimanolis在评论中提及的下方,你可以建立像蚂蚁或Maven构建系统这些文件。 您也可以使用附带的Java / JavaEE的SDK工具建立他们“手动”。 例如,你应该有一个jar
在你的路径,如果你安装了SDK命令。 下面是这些构建系统的一些细节:
创建一个可执行的JAR,它被放入一个Web服务器或由另一个项目,是前两个中的一个库的战争。
如果应用程序是平均到客户端上运行,它被打包为一个可执行的JAR,然后再打包成一个应用包(苹果机),也许包裹在一个exe文件(Windows)中,或者用一个可执行脚本,将推出JAR配对并设置任何所需的VM参数。
如果它是一个Web应用程序的一部分,则其将被打包为WAR或EAR和放置到Web服务器上的适当位置。
如果它只是一个图书馆,那么它通常打包为一个JAR(非执行)和分布式因此用于集成到更大的项目。
小程序,然后跑了,但我很快意识到,这是情况并非总是如此
其实,小应用程序都是时下罕见的,他们不鼓励使用。