如果我要发布一个对核心 Java 类(sun.*)进行字节码操作的实用程序,我应该担心许可问题吗?
提供更多上下文:为了运行自动回归测试套件,我们需要将自己的MockSystem.currentMillis()
实现注入到java.lang.System.currentMillis()
调用原始代码的任何位置。
由于我认为这个小型实用程序将对许多开发人员有用,我现在想知道当我的(即将成为)许可代码操作以其他方式许可的代码时是否涉及任何许可问题。MIT
如果我要发布一个对核心 Java 类(sun.*)进行字节码操作的实用程序,我应该担心许可问题吗?
提供更多上下文:为了运行自动回归测试套件,我们需要将自己的MockSystem.currentMillis()
实现注入到java.lang.System.currentMillis()
调用原始代码的任何位置。
由于我认为这个小型实用程序将对许多开发人员有用,我现在想知道当我的(即将成为)许可代码操作以其他方式许可的代码时是否涉及任何许可问题。MIT
我不是律师,但一般而言,第三方代码的许可条款会在您发送第三方代码时生效。
因此,如果您使用您的实用程序,然后发送由您的实用程序修改的代码,那么很可能会出现问题......
但是,如果您只是发布您的代码,并且有人在他们的机器上使用您的代码(用于运行他们的测试)并且没有发布您的实用程序修改的代码,那么许可问题就会降低。
您的实用程序的用户需要确保他们遵守您的实用程序的许可证(麻省理工学院基本上是一个“这里是代码,做你想做的,但如果它在你的脸上炸毁不要怪我”许可证,所以他们应该可以使用您的实用程序)并确保他们遵守运行您的实用程序的代码的许可证。
当然,如果他们告诉任何人他们正在违反第 3 方许可证,而没有人知道他们是,那么他们自己的风险很低……但他们将不得不向更高的权力(如果有的话)回答,因为他们是不遵守执照的坏人!
应该没有问题。如果字节码操作存在法律问题,那么我们早就听说了。
NullUserException 写道:
你最好问问律师。
如果您想要一个具有坚实法律基础的答案,那是正确的。但我认为在这种情况下没有必要。简单阅读许可证就足够了;http://www.oracle.com/technetwork/java/javase/terms/license/index.html。而且我看不到任何东西可以阻止您编写或发布字节码操作工具。
我从 java 许可证中得到了这个。随心所欲地阅读。
F. JAVA 技术限制。您不得创建、修改或更改其行为,或授权您的被许可人创建、修改或更改以任何方式标识为“java”、“javax”、“ sun"、"oracle" 或 Oracle 在任何命名约定指定中指定的类似约定。