繁体   English   中英

LibGDX打包.tmx地图

[英]LibGDX packing .tmx maps

我试图通过命令行打包我的.tmx地图,但我一直这样:

Could not find or load main class libs.gdx-audio-sources.jar

我有一种感觉,这只是一个随机的.jar,无论如何它都在我的资产文件夹里面的一个libs文件夹里面。 我输入的命令是:

java -cp libs/* tiles output file   (sorry this shouldn't be a comment)

libs文件夹包含所有的jar,我确实添加了每个libGDX jar。 tiles是我的.tmx,图像包文件和图像的文件夹,输出是我的空输出文件夹。 如果我只是将/ tiles和/ output的目录作为参数输入到TiledMapPacker.main(当然是在一个数组中)我只是得到

Exception in thread "main" java.lang.NoClassDefFoundError: com/badlogic/gdx/tools/imagepacker/TexturePacker$Settings
at com.badlogic.gdx.tiledmappacker.TiledMapPacker.main(TiledMapPacker.java:351)
at com.game.packer.Main.main(Main.java:22)
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.tools.imagepacker.TexturePacker$Settings
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more

我很确定imagepacker.texturepacker $ settings是在我的libs文件夹里面的tiles-preprocessor.jar里面,所以我不知道发生了什么。

幸运的是,你不再需要这样做了。
他们完全重构了Tiled地图代码。

问题在于shell扩展:

java -cp libs/* tiles output file

shell会将libs/*扩展到目录中的所有文件,因此您将获得以下命令行:

java -cp libs/gdx-audio.jar libs/gdx-audio-sources.jar ... tiles output file

并且-cp期望以冒号分隔的列表,而不是以空格分隔。 所以第二个JAR文件被解释为“主类”参数,尽管libs/gdx-audio-sources.jar显然不是类的名称。

所以我们需要冒号分隔的文件名 ,可以这样做:

java -cp $(printf "%s:" libs/*) tiles output file

暂无
暂无

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

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