重用Applet现有代码的选项?

时间:2016-05-20 02:27:12

标签: java applet

经过五年半的全职工作,产品排名引擎项目围绕一个64,839行applet,浏览器公司认为适合转储applet。

此时我无法将applet转换为另一种语言(除非我获得大量资金以聘请程序员团队)。我的伴侣不会再支持我两年了。

我知道这些问题相当模糊,我应该跟上最新的技术,但是我已经有14年的慢性耳痛会影响记忆力和注意力,所以编程很难,而不是试图跟上最新的软件的发展也是如此。我要求建议的原因是我不想再制造另一个巨大的东西了。

问题1:我的理解是Java Web Start启动了应用程序,但它无法再回传到JSF网页(JSF2.0)。有没有办法解决这个问题?

问题2:除了重新编码整个事情之外,还有人可以提出任何其他选择吗?

问题3:applet是否可能会被更改为使用最新的插件格式,或者它们是否已经消失了?有没有人对此有任何内幕消息?

小程序要求概述:

小应用程序允许用户根据自己的特定需求自定义部分或全部产品等级标准,这些标准由知识渊博的专家小组预设。通过图形(自定义绘制的jPanel)存储和编辑标准。

可以使用鼠标完全改变排名标准(更改图形形状),但如果用户愿意,可以使用键盘输入一些值。一旦定制,applet就会用于将更改提交给排名引擎服务器。

它还用于允许第三方专家更改排名标准,以创建自己的产品使用类别排名标准。 第三方专家可以在他们自己的网站上放置链接,允许用户使用第三方专家自己的排名标准对产品进行排名。这允许任何人创建自己的排名标准供他人使用。

applet使用一个插件bean,它也用于独立的Java编辑器应用程序,用于从头开始创建产品使用排名标准文件(编辑器是77,710行代码,尽管61,257行是插件这也用于小程序)。这意味着很可能还必须转换编辑器,因为这两者是密不可分的。该插件基本上是applet和编辑器。

该插件可以捕获,编辑和存储几乎任何人类大脑排名的排名标准。由于图表,它可以使用大脑使用的任何属性,并且我们没有正式的测量系统;因此applet太大了。

1 个答案:

答案 0 :(得分:0)

对于Stack Overflow,您的问题可能过于宽泛,但我会做出简短的回复。

Java Web Start

Java Web Start可能是最适合您的路线。该技术基本上是用户获取,安装和运行Java桌面应用程序的便捷方式。 Web浏览器仅用于初始下载描述您的应用程序的小XML文件以及从何处获取应用程序。 Java Network Launching Protocol (JNLP)定义存储在该XML文件中的这些信息。您的应用程序将从服务器下载,并保存到本地计算机。如果需要,可以下载并安装Java Runtime Environment (JRE)

默认情况下,应用程序在类似于Java Applet的安全沙箱中运行。但您可以签署您的应用程序并定义安全协议,以打破其中一些限制,包括建立网络连接。

您的大部分节目将保持不变。该应用程序仍然是纯Java,在JVM中运行。您需要进行一些重新编程才能成为桌面应用程序而不是打包为Applet。而且你必须学习如何缓解这些沙盒限制。而且你的应用程序将有一个自己的菜单栏作为一个成熟的应用程序,所以你可能想要利用它。但你的应用程序的内容将保持不变。

多年来,Sun& Oracle已经致力于改进Java Web Start。不幸的是,桌面上的Java已经失去了太多的心灵分享后来得太晚了。而Swing从来没有得到如此迫切需要的大修。所以Java Web Start永远不会变得很重要。但是Java Web Start确实像宣传的那样工作,所以试一试。

虽然几年前有一些安全问题,但我相信它们很久以前就已得到解决。 Java的许多臭名昭着的安全问题主要涉及浏览器和Java JRE之间桥接的Web浏览器插件;这些问题不会影响Java Web Start(尽管您应该进行自己的研究以确认)。

对于普通大众来说,Java Web Start可能过多地询问新的,匿名的和动机不足的用户。对于拥有热心客户的用户群的商业产品,它可能是您的完美解决方案。我建议你做更多的研究,阅读Wikipedia page,研究Oracle technology page,查看Tutorial,阅读this overview by John Zukowski,其中包含一个网络示例(建立套接字连接到time.nist.gov),等等。

Vaadin

Vaadin框架是一个开源的免费专业用户界面开发框架,它使用纯Java在Java Servlet web container的服务器上运行您的应用程序使用标准Web技术(HTTP,HTML,CSS,JavaScript,GWT,WebSocket等)自动生成用户界面,以便在常规Web浏览器(Firefox,Chrome,Safari,IE,Edge等)中进行演示。作为一个灰胡子,我认为Vaadin是新千年的X Window System:用户在本地计算机上与屏幕小部件交互,但应用程序的业务逻辑正在服务器上执行,服务器正在更新远程服务器UI是业务逻辑执行的结果。

Vaadin 不是还有另一个网络模板系统。相反,您的应用程序是用纯Java编写的。您无需学习上面列出的网络技术字母表。 Vaadin自动神奇地为你照顾。你在Java中说“我想要一个标签,一个字段和一个按钮”,Vaadin使这些出现在Web浏览器中。

使用Vaadin可以保留业务逻辑部分的Java代码。但是您需要重新编写用户界面部件以使用Vaadin小部件而不是Swing小部件。这并不是非常困难,因为Vaadin受到Swing的一般风格的启发,定义了由布局管理器控制的布局,在布局管理器中放置各种小部件(字段,标签,按钮等)。

Vaadin可以制作非常专业的面向商业应用的应用程序。提示:对于较新的Reindeer theme,我更喜欢商务应用的Valo theme

但是你在Swing小程序中提到了某种自由格式的绘图画布。这可能是一个棘手的问题。我不知道在Vaadin应用程序中使用这样的小部件。我不是说没有这样的事情,我只是不知道。有滑块小部件可能有用,但我不清楚你在这方面的需求。