Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将默认Java libGDX项目从Eclipse导出为jar_Java_Eclipse_Jar_Libgdx_Desktop - Fatal编程技术网

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

无法将默认Java libGDX项目从Eclipse导出为jar,java,eclipse,jar,libgdx,desktop,Java,Eclipse,Jar,Libgdx,Desktop,当我从eclipse中将默认的libgdx项目导出为可运行的JAR文件,然后运行.JAR文件时,它只会弹出一个黑屏,然后关闭 当我从Eclispe内部运行项目代码时,它工作得很好。程序将显示带有“坏逻辑”徽标的正确红色屏幕(这就是应该发生的情况) 如果我在命令行中使用gradle和命令 gradlew desktop:dist 然后运行创建的jar,它只需打开显示一个黑屏一秒钟,然后关闭 使用的代码是默认的Java libgdx项目代码: package com.mygdx.game.tes

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

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

如果我在命令行中使用gradle和命令

gradlew desktop:dist

然后运行创建的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);
    }
}

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

1.)确保android项目中的资产文件夹在桌面项目中“链接”。要执行此操作,请在“软件包资源管理器”中将“资源”文件夹向下拖动到桌面项目,并在出现提示时选择允许链接文件夹的选项

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

3.)在android项目中,右键单击资产文件夹并选择构建路径->“用作源”


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

在.JAR位置打开
cmd
,并使用
Java-JAR-yourJar.JAR
命令运行它-您可能会看到堆栈跟踪-粘贴到此处谢谢。这个问题已得到某种程度的解决。问题是最初图像文件甚至不在jar中。即使正确构建了jar,仍然无法找到图像。解决这一问题的方法是简单地将图像的副本移动到与jar相同的目录中。我仍然不知道如果不使用这个技巧,如何让jar定位图像。使用Gdx.files.internal(文件名)不起作用。