java - 无法从 Eclipse 将默认 Java libGDX 项目导出为 jar

标签 java eclipse jar libgdx desktop

当我从 eclipse 中将默认的 libgdx 项目导出为可运行的 JAR 文件,然后运行该 .jar 文件时,它只是弹出黑屏,然后关闭。

当我从 Eclispe 内部运行项目代码时,它工作正常。程序显示带有“坏逻辑” Logo 的正确红屏(这是应该发生的情况)。

如果我使用 gradle 和命令从命令行构建项目

gradlew desktop:dist

as instructed here

然后运行创建的 jar,它只会打开并显示黑屏一秒钟,然后关闭。

使用的代码是默认的Java libgdx项目代码:

package com.mygdx.game.tesprac;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class TestLibgdx extends ApplicationAdapter {
SpriteBatch batch;
Texture img;

@Override
public void create () {
    batch = new SpriteBatch();
    img = new Texture("badlogic.jpg");
}

@Override
public void render () {
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    batch.begin();
    batch.draw(img, 0, 0);
    batch.end();
}
}

桌面启动器:

package com.mygdx.game.tesprac.desktop;

import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.mygdx.game.tesprac.TestLibgdx;

public class DesktopLauncher {
    public static void main (String[] arg) {
        LwjglApplicationConfiguration config = new     LwjglApplicationConfiguration();
        new LwjglApplication(new TestLibgdx(), config);
    }
}

Additional information

最佳答案

我终于找到了解决方案,并将其发布在这里供其他人查看。

1.) 确保 Android 项目中的 Assets 文件夹已“链接”到桌面项目中。为此,请在 Package Explorer 中将 Assets 文件夹拖到桌面项目,并在出现提示时选择允许链接文件夹的选项。

2.) 右键单击​​桌面项目选择属性 -> 构建路径,然后将 android 项目添加到“项目”选项卡下的构建路径中。

3.) 在android项目中右键单击assets文件夹并选择build path -> 'use as source'

4.) 右键单击​​桌面项目,然后选择:导出 -> Java -> 可运行的 JAR 文件,选择“将所需的库打包到生成的 JAR 中”选项 -> 完成。

关于java - 无法从 Eclipse 将默认 Java libGDX 项目导出为 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36972509/

相关文章:

java - Mavericks OS X 上的几个应用程序请求安装 Java 6 SE 运行时,但已经有 Java 7

java - 从命令提示符执行 .jar 文件时发生 JNI 错误

java - CyclicBarrier/CountDownLatch 和 Java 中的 join 有什么区别?

java - 将电子邮件从 MS Outlook 拖放到 Eclipse RCP

java - 在 Eclipse 中从 SVN 服务器 checkout GWT 项目?

java - slick2d(lwjgl)、nifty、kryonet - 如何构建 .jar?

android - 将带有 proguard 的 Android 项目迁移到 R8,缺少 rt.java 文件,Android Studio 4.2

java - 将日历添加到 JSF 页面

java - 在Hibernate中,除了如何处理坏ID之外,session.get()和session.load()之间还有什么区别吗?

java - 如何在 java 中正确加载 BufferedImage?