在 Eclipse java

问题描述

首先感谢您的关注! 我有以下问题 - 我必须从图像中读取文本,这工作正常。 在Eclipse中,我也可以完美的使用程序。 我使用 2 个库:Tesseract (tess4j)opencv-451

但是当我将程序导出到可运行的 jar 时,我收到此错误消息。 Error Message Image

如果我无论如何都导出 jar,它不起作用,因为缺少库(惊喜)。

但是这些应该可以与 APACHE LICENSE,VERSION 2.0 一起使用。 我已经在我创建的每个类中添加了版权声明,as in image 2,我也希望库的创建者得到他们应得的提及。

不幸的是,我不知道我做错了什么,或者我必须做些什么不同的事情才能将这些库用作导出 jar,因为这是我第一次使用免费许可证.

谁能告诉我错误在哪里,以及如何让 Eclipse 将所需文件打包到导出的 jar 中,或者我可以做些什么?

解决方法

只需选择项目 Right Click > Build Path > Add external archives。这将打开文件资源管理器,它允许您浏览目录并选择外部 JAR。添加成功后,它将出现在您项目的引用库中。

Screenshot

,

您在这里误解了两个不同的问题。

  1. 不是错误。这是一个警告。它通知您,如果您不采取适当的步骤,您可能会违反您尝试包含的至少一个库的许可条款。 Eclipse 无法验证您是否执行了这些步骤 - 因此,执行这些步骤不会使警告消失。但是,这是一个警告 - 当您单击“确定”时,eclipse 将继续执行您要求它执行的操作。它包括那些正常的库;它已警告您需要确认您要么遵守这些图书馆的许可协议,要么居住在不受这些许可条款约束或它们不可诉的司法管辖区(并且您在道德上可以忽略这些许可)他们) - 剩下的取决于你。

  2. 遵守这些许可的方式当然不是包含额外的版权标题。相反...

    1. 对于大多数 FOSS 许可,您必须做出合理的努力,通知您产品的用户您已包含这些库。如果它是一个 GUI 应用程序,在“关于”框中命名它们是一个值得信任的好地方。如果不是,那么请不要从 Stack Overflow 的答案中获取法律建议,但是,在获取下载的过程中,请确保在用户可能从其下载这些网站的任何网站的“以用户为中心”部分中明确说明,你使用这些库。如果它是你只在你自己控制的机器上运行的软件(比如基于 Web 服务器的概念),它会变得更加模糊;这是一大堆蠕虫(GPL 是否暗示如果您在 GPL 库之上构建网络堆栈,您必须分发它的源代码并给予适当的信用?)- GPLv3 已被编写以试图关闭据我所知,无论是在欧洲还是美国法院,这个漏洞都没有经过测试。

    2. 此外,大多数像这样限制性的 FOSS 许可证也要求您也开源您的产品。您不必随可分发二进制文件一起提供源代码,但这是满足许可要求的一种简单方法。您也可以将它们发布在您的网站上,或者例如将您的源存储库托管在可公开访问的站点上,例如 github。再说一次,我不是你的律师。

但是,正如我所说 - eclipse 不会检查您是否已在 github 上托管项目并包含关于对话框。它只是弹出那个警告。这就是警告有一个“下次不要告诉我”复选框的原因。

所以,出了什么问题?

与许可无关,这是肯定的。您可以通过使用任何能够读取 zip 文件的工具(例如 7zip)或在 posixy 命令行 unzip -l 上打开 jar 文件,或使用 jar 来检查 eclipse 生成的 jar 文件是否包含您需要的内容工具使用 jar tvf thefile.jar 列出内容。您不是在 jar 文件中查找 tess4j.jar - 您正在查找 tess4j.jar内容。如果你看到它,eclipse 包含它。如果您的应用无法正常运行,请检查如何包含这些内容。他们有正确的道路吗?您是如何设置 eclipse 项目以包含这些依赖项的?制作项目配置的屏幕截图(右键单击项目,选择“属性”,讨论构建路径的选项卡是相关的),或者如果它是 maven 或 gradle 项目,请发布您的 pom.xml 或 {{1} } 文件,并且可能在一个新问题中,因为这个问题现在最好锁定为关于许可的误导性问题。