【问题标题】:Creating libGDX applet创建 libGDX 小程序
【发布时间】:2014-05-25 14:47:37
【问题描述】:

我知道有一个关于如何创建 libGDX 小程序的指南,但我觉得它非常过时并且有些混乱。这是我已经完成的:

  1. 在我的桌面项目中创建小程序类:

    public class DesktopApplet extends LwjglApplet {
    private final static LwjglApplicationConfiguration DEFAULT_CONFIG =
        new LwjglApplicationConfiguration() {
        {
            width = 512;
            height = 512;
        }
    };
    
    public DesktopApplet() {
        super(new Core(),DEFAULT_CONFIG);
    }
    
    private static final long serialVersionUID = -1916205038641068252L;
    }
    
  2. 将桌面项目导出为常规 jar。添加了项目的 jar(以及“applet/basic”文件夹中的 gdx 和所有 lwjgl jar)。

  3. 根据基本的 lwjgl 小程序和教程创建了一个 html 文件:

    <applet code="org.lwjgl.util.applet.AppletLoader" archive="lwjgl_util_applet.jar" codebase="." width="512" height="512">
    
    <!-- Name of Applet, will be used as name of directory it is saved in, and will uniquely identify it in cache -->
    <param name="al_title" value="mygametitle">
    
    <!-- Main Applet Class -->
    <param name="al_main" value="my.packages.desktop.DesktopApplet">
    
    <!-- List of Jars to add to classpath -->
    <param name="al_jars" value="mygamejar.jar, gdx.jar, gdx-backend-lwjgl.jar, lwjgl_applet.jar, lwjgl.jar, jinput.jar, lwjgl_util.jar">
    
    <!-- signed windows natives jar in a jar --> 
    <param name="al_windows" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar, windows_natives.jar">
    
    <!-- signed linux natives jar in a jar --> 
    <param name="al_linux" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar, linux_natives.jar">
    
    <!-- signed mac osx natives jar in a jar --> 
    <param name="al_mac" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar, macosx_natives.jar">
    
    <!-- signed solaris natives jar in a jar --> 
    <param name="al_solaris" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar, solaris_natives.jar">
    
  4. 创建了一个密钥库文件。删除了默认的 lwjgl 签名(META-INF 文件夹),为签名命令添加了时间戳,为 jar 签名创建了一个 bash 脚本 - 最后 - 对所有 jar 进行了签名。虽然签名不会产生错误,但jarsigner -verify 返回一个警告“此 jar 包含未验证证书链的条目。”我不知道如何摆脱它。这是我的签名命令:jarsigner -keystore .keystore -digestalg SHA1 -tsa http://timestamp.comodoca.com/rfc3161 -storepass mypass $jar gdxkey。

  5. 将 Java 安全级别更改为中等。它让我终于能够在没有安全错误的情况下运行小程序(感谢 kabb!)。

  6. 小程序...不起作用。 “切换小程序”时仍然发生错误。我不确定我是否导出了正确的项目 - 我应该在桌面项目中包含一个 jar 还是只包含核心并手动添加所有资产和库?

【问题讨论】:

    标签: java applet libgdx lwjgl


    【解决方案1】:

    问题是小程序是自签名的。从 JDK7u51 开始,如果您的 java 安全设置设置为 high 或更高,则自签名和未签名的应用程序将被阻止。你可以阅读更多关于这个here的信息。

    为了能够测试您的小程序,您只需转到 java 控制面板,转到安全选项卡,然后将安全级别设置为中等。

    但是,如果您希望其他人能够运行您的小程序而不必经历更改其安全设置的麻烦,您必须获得证书颁发机构的证书,并使用该证书签署您的小程序.不幸的是,这需要花钱,而且据我所知没有解决方法。

    如果您想在浏览器中运行游戏,您可以考虑使用 GWT。 LibGDX 在它的 wiki 上有一些关于如何使用 GWT 设置项目的教程。但是,这可能会很麻烦,尤其是在您使用 GWT 不支持的库时。

    【讨论】:

    • 我更改了安全设置,但仍然收到“错误加载小程序”,有什么想法我可能做错了吗?我不确定我是否应该实际导出桌面项目并将其作为 jar 或只是核心并手动包含所有资产等。
    • 您可以进入高级选项卡中的 java 控制面板并启用控制台,这样您就可以看到错误的堆栈跟踪。但是,这里有一些关于它可能是什么的猜测。您是否在您的小程序中包含了所有必要的库(lwjgl_util_applet.jar、gdx.jar、所有 gdx 后端、所有 gdx 本机等)?你签署了所有这些以及你的小程序吗?你是在网络服务器上运行它吗(而不是在没有服务器的情况下在浏览器中打开 index.html)?
    猜你喜欢
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多