2

I wrote a program in Java 6.0, but it turns out that some of our client only have 5.0.

The issues is that lot of features that 6.0 has was not in 5.0 yet. For example:

  • JTable Sorting, Filtering feature
  • SwingWorker class

My Question is :

  1. is it legal to just copy the java 6.0 source code to my own project so that my client with 5.0 jre can run it.
  2. from technical point of view, is it hard to copy the classes source code like TableRowSorter, regexFilter to my own project and let it work?

Thanks

4

3 回答 3

3

可能不会,OpenJDK 类在 GPL 下,这意味着您也必须将源代码放在 GPL 下。Oracle Java 类也属于“你不能只用我们的源代码做你想做的事”,所以这很可能是一个非常糟糕的主意。

您可以使用 Retroweaver 使您的源代码与早期版本的 Java 一起工作,但我会说您应该使您的代码与 Java 5 一起工作,如果可用,可以选择使用 Java 6 工具,然后告诉您的客户他们会得到哪些东西从升级。


2021 年编辑:从 Java 17 开始,正确的解决方案是将经过测试的 JVM 作为部署的一部分。有工具可以带来您所需要的东西。

于 2011-02-04T22:04:50.670 回答
1

您应该问的一个问题是:为什么您的客户端还没有升级到 Java 6.0?由于它是免费且易于执行的,因此他们必须有一个理由,并且您可能应该在从中发送代码之前找出它是什么。

于 2011-02-04T21:57:00.887 回答
0

这取决于您从中复制的源代码。来自 JavaSE?开放JDK?

无论您想从哪里复制,请检查他们的许可证以获取代码。

复制可能很简单,只复制类及其依赖项。但是可能有很多特定的依赖关系,这可能会消耗大量时间。当您必须复制版本 5 中已经存在的已更改类时,您确实会遇到问题,您需要一个版本用于某些代码,而另一个版本需要更新。但是,如果您只在该项目中使用 Java6 代码,那应该没问题。将类移到另一个包中也可能是一种选择,但也可能需要做很多工作。

于 2011-02-04T20:55:37.967 回答