有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java导出LWJGL本地人与项目?(IntelliJ IDEA)

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

我所尝试的:

  • 文件->;项目结构-&燃气轮机;模块->;依赖项选项卡->;添加->;JAR或目录->;(在此处插入本地人的路径)——>;对话框中的选项“类”-&燃气轮机;选中“导出”下的复选框

期望的结果是:一个不依赖于命令行的可运行JAR可以正常打开。我的项目中包含的其他JAR和目录也可以,但是如果可能的话,我希望IntelliJ能够自动将它们与我的项目一起导出,这样我就不必手动将所需的文件拖到输出目录中,并生成脚本来使用正确的本机运行JAR


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


共 (3) 个答案

  1. # 1 楼答案

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

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

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

    编辑:这里有一个类似的问题:How to make a JAR file that includes DLL files?

  2. # 2 楼答案

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

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

    请注意,您可能需要在System.getProperty("user.dir")前面加上前缀,我不确定

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

  3. # 3 楼答案

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