如何使用多种语言创建大型可部署程序?

时间:2011-03-19 09:49:25

标签: java eclipse deployment executable

大家好,这是我在stackoverflow上的帖子。

我通常是一个潜伏者,在没有张贴的情况下找到我需要的所有东西,但在尝试描绘它是如何工作时却画了一些空白。也许如果有人能提供一些见解我会非常感激。

所以我理解了软件开发周期并且知道了相当多的代码 (c ++和Java,以及Visual Basic,我去年担任CS辅修专业的CIS专业)。我可以使用Java在elipse中编写一些程序,甚至可以使用Java在eclipse中创建一些基本的GUI组件。

现在回到我的3部分问题:我理解一个人可以从几个.java文件中创建一个.jar并分发它,但是在考虑像yahoo messenger这样的常见程序时(仅作为示例)我来到了以下三个部分问题:

首先,您是否可以使用Java在eclipse中编写类似yahoo messenger的程序,或者您是否需要其他语言和其他开发环境等其他工具,项目如何从头到尾进行? (我想我在这里迷失了,因为我只编写了命令行和简单的GUI应用程序)。

其次,假设使用不同的语言在yahoo messenger中创建一个功能更容易,如何用一种以上的语言编写一个程序?比如说你想用python或c ++编写一些代码,而你的大部分代码都是用Java编写的,即你的main方法是java,你正在使用JVM进行编译。 (假设您不能在Java程序中粘贴python或c ++代码)我做了一些谷歌搜索并看到了一些关于链接编译器和包括本机代码以包含Java项目中的其他语言代码的东西。如果解释太长,也可以接受其他阅读材料的链接。

第三 - 部署如何运作?说我已经完成了为我的程序编写代码并希望将其转换为.exe(对于Windows用户)并将其粘贴在我的网站上供人们下载。我知道windows内置了一个iexpress实用程序来创建.exe。除了发布.jar之外,如何将源代码转换为exe?再次感谢您的所有输入和时间。我是初学者,试图围绕这些概念。答案可以在技术领域提供,或者只是概念性的,或者非常感谢。

-Mark

3 个答案:

答案 0 :(得分:0)

  1. 用Java编写了几个IM客户端 ,但我猜想主流的客户端主要用C,C ++或(在Mac上)用Objective-C编写。
  2. 用多种语言编写一个程序有很多挑战,挑战的性质取决于您想要使用的语言组合。在许多情况下,结合两种以上的语言可能没什么好运。一组阻抗问题已经够糟糕了,其中三个是几乎可以保证的灾难。
    • 您可以通过在多个程序中拆分单个应用程序来避免这些问题,每个程序都使用单一语言编写,并通过某种IPC机制与其他程序通信。
  3. 创建“exe”也是一种非常特定于语言的问题。例如,Java,C#,C / C ++和Python都有完全不同的部署故事。

答案 1 :(得分:0)

  

说我已经完成了为我的程序编写代码并希望将其转换为.exe(对于Windows用户)并将其粘贴到我的网站上供人们下载。

在那种情况下,我会说你是愚蠢的。 ;)

Java Web Start是部署基于Java的富客户端应用程序的更好选择。来自一个网站。 JWS适用于任何具有Java的平台。

答案 2 :(得分:0)

1)在大多数情况下,您可以在java中编写程序而无需任何其他编程语言。在极少数情况下,您需要从java调用dll以与某些专有程序进行交互,为此您需要使用JNI和C或C ++。使用多种语言的一种更常见的情况是为应用程序添加脚本性。例如,我的公司提供了一个服务器/客户端应用程序,用户可以使用Groovy编写脚本,但服务器和富客户端本身只用Java编写。

2)java和另一种编程语言的集成取决于另一种语言。集成Groovy很简单,我认为集成Python(使用JPython)或Ruby(使用JRuby)相当容易。但这是一种努力(更不用说用不同语言编程的精神压力),除非对此有特殊要求,否则我不建议这样做。

3)与往常一样,有几种选择。有关创建Windows可执行文件的信息,请参阅how-can-i-convert-my-java-program-to-an-exe-file。或者您可以使用例如创建Windows安装程序NSIS。或者使用Java Web Start。

如果这个问题背后的意图是了解如何编写和部署一些大型富客户端(桌面)应用程序,我推荐Eclipse RCP book。本书将引导您使用Eclipse RCP框架开发和部署XMPP / Jabber messenger客户端。请注意,没有一种真正的方法可以创建大型应用程序,而其他Java应用程序框架则以不同的方式执行。