Java 使用project导出LWJGL本地人?(IntelliJ IDEA)

Java 使用project导出LWJGL本地人?(IntelliJ IDEA),java,intellij-idea,Java,Intellij Idea,我目前正在编写一个依赖于LWJGL的程序。将库添加到我的项目中很容易,但是我很难将我的项目导出为一个独立的JAR,用户只需双击即可获得一个成品 我所尝试的: 文件->项目结构…->模块->依赖项选项卡->添加->JAR或目录->(在此处插入本机路径)->对话框中的“类”选项。->选中“导出”下的复选框 期望的结果是:一个不依赖于命令行的可运行JAR可以正常打开。我的项目中包含的其他JAR和目录也可以,但是如果可能的话,我希望IntelliJ能够自动将它们与我的项目一起导出,这样我就不必手动将

我目前正在编写一个依赖于LWJGL的程序。将库添加到我的项目中很容易,但是我很难将我的项目导出为一个独立的JAR,用户只需双击即可获得一个成品

我所尝试的:

  • 文件->项目结构…->模块->依赖项选项卡->添加->JAR或目录->(在此处插入本机路径)->对话框中的“类”选项。->选中“导出”下的复选框
期望的结果是:一个不依赖于命令行的可运行JAR可以正常打开。我的项目中包含的其他JAR和目录也可以,但是如果可能的话,我希望IntelliJ能够自动将它们与我的项目一起导出,这样我就不必手动将所需的文件拖到输出目录中,并生成脚本来使用正确的本机运行JAR



我是IntelliJ的新手,来自Eclipse(尽管我也从来没有在Eclipse中这样做过),并且仍然在掌握程序使用的新术语(对我来说)。我确信有一个非常简单的解决方案我只是忽略了。提前谢谢。

我不知道IntelliJ是什么,所以我不确定这会有多大帮助,但几年前我确实用LWJGL做了类似的事情

LWJGL依赖于本机库,而操作系统依赖于从真正的本机文件加载这些库。你不能从罐子里装。因此,您可以将它们放在jar中,但您必须编写一些代码(在尝试调用任何LWJGL东西之前运行),这些代码将在运行时从jar中提取所需的本机,并将它们保存在系统临时目录(或任何地方)中,然后使用
system.load
加载它们

然后您必须从
org.lwjgl.Sys
(函数
doLoadLibrary
loadLibrary
)中删除/注释掉正常的库加载代码。应该这样做


编辑:这里有一个类似的问题:

我可以通过使用JarSplice制作一个包含本地人的Windows EXE来解决这个问题。

我也使用IntelliJ,我遇到了类似的问题。如果您将本地人放在附近的某个文件夹中,请在
public static void main
方法的开头使用类似以下内容:

System.setProperty("org.lwjgl.librarypath", PATH_TO_LIBS);
请注意,您可能需要将
System.getProperty(“user.dir”)
前置到
PATH\u to_LIBS
的前面,我不确定


附录:你说你想用你的jar自动创建任何附加文件?检查IntelliJ的工件。转到项目设置,选择工件,然后使用加号按钮添加一个工件。一旦您添加了一个工件,您就可以随意处理文件结构,添加到其他文件夹中(例如natives文件夹或resources文件夹)。完成后,您可以单击Build>Artifact,它会自动为您打包它们,并将它们放在一个目录中(您可以在Artifact窗口中指定该目录)。

如果您愿意回到Eclipse中,我可以在Eclipse中完成。