gpt4 book ai didi

java - 如何解决图书馆的密封违规问题?密封违规 : package org. lwjgl.opengl 被密封

转载 作者:行者123 更新时间:2023-11-30 08:02:10 27 4
gpt4 key购买 nike

按照此处的说明将项目设置为基于 Slick2d 的项目的模板:Slick2d wiki使用提供的代码测试设置 here在运行时,我不断收到一大堆密封错误。我的想法是,这个问题源于两个库中的 ljgwl.jar 版本,但是 Slick 需要两者才能正常运行。我该如何解决这个问题?

最佳答案

包密封是一种 Java 特性,部分以 JAR 文件格式实现。它在几个地方进行了讨论,包括 in Oracle's Java Tutorial ,但最重要的是,当在 Jar 的 list 中启用包密封时,属于该包的任何类都不能出现在任何其他 JAR 文件中。

My thought is that this problem stems from the version of ljgwl.jar in both libraries, however Slick requires both in order to function properly.

我不确定您所说的“库”是什么意思,因为这不是 Java 概念。但是,我怀疑您是想说您以某种方式从两个不同的来源获得了 ljgwl.jar 文件,并且您已将这两个文件放入您的项目类路径中。这确实是一个问题,不仅仅是包装密封。事实上,您可以感谢密封错误,因为它们可能使您免于更微妙、更难以诊断的运行时错误。

How can I resolve this?

您的类路径中应该只有一个 LWJGL 副本,不管包密封强制执行的任何要求,也不管类如何打包在 jar 文件中。看起来 Slick2D 发行版可能附带 LWJGL 的副本——在这种情况下,使用那个副本可能是最明智的。只要它在您的类路径中(无论如何 Slick2D 都必须使用它),您应用程序中任何地方的任何类都可以使用它。

如果您需要应对 LWJGL 版本的不一致要求,或者如果您获得了包含 LWJGL 类和其他内容的 JAR,这会变得很棘手,但这不会改变底线:您必须选择一个LWJGL 版本,只在您的应用程序中使用该版本,并且在您的类路径中只包含它的一个副本。

关于java - 如何解决图书馆的密封违规问题?密封违规 : package org. lwjgl.opengl 被密封,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com