繁体   English   中英

用项目导出LWJGL原生代码? (IntelliJ IDEA)

[英]Export LWJGL natives with project? (IntelliJ IDEA)

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

我做了什么:

  • 文件 - >项目结构... - >模块 - >依赖项选项卡 - >添加 - >罐子或目录 - >(在此处插入本地路径) - >对话框中的选项“类”。 - >选中“导出”下的框

渴望的结果:一个可运行的JAR,不依赖于命令行来正常打开。 我的项目中包含的其他JAR和目录都很好,但是我希望IntelliJ尽可能自动地将它们导出到我的项目中,这样我就不必手动将所需的文件拖到输出目录中并创建一个脚本使用正确的本机运行JAR。


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

我能够通过使用JarSplice制作包含其中的本机的Windows EXE来解决这个问题。

我也使用IntelliJ,我也有类似的问题。 如果您将本机放入您附近的文件夹中,请在public static void main方法的开头使用以下内容:

System.setProperty("org.lwjgl.librarypath", PATH_TO_LIBS);

请注意,您可能必须将System.getProperty("user.dir")PATH_TO_LIBS的前面,我不确定。

ADDENDUM:你说你想要用你的jar自动创建任何其他文件吗? 查看IntelliJ的工件。 转到项目设置,选择工件,然后使用加号按钮添加工件。 一旦你获得了一个工件,你就可以在一边乱用文件结构,添加其他文件夹(例如natives文件夹或资源文件夹)。 完成后,您可以单击Build> Artifacts并自动为它们打包,并将它们放在一个目录中(您可以在Artifact窗口中指定)。

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

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

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

编辑:类似的问题在这里: 如何制作包含DLL文件的JAR文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM