3

コマンド ラインから .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、イメージ パック ファイル、およびイメージを含むフォルダーで、output は空の出力フォルダーです。/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 フォルダー内にある tiled-preprocessor.jar 内にあると確信しているため、何が起こっているのかわかりません。

4

2 に答える 2

1

幸いなことに、これを行う必要はもうありません。
Tiled マップ コードを完全にリファクタリングしました。

于 2013-04-27T17:55:29.787 に答える
0

問題はシェルの拡張にあります。

java -cp libs/* tiles output file

シェルはlibs/*ディレクトリ内のすべてのファイルに展開されるため、次のコマンドラインを取得します。

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

また-cp、スペースで区切られたリストではなく、コロンで区切られたリストが必要です。したがって、2番目のJARファイルは「メインクラス」引数として解釈されますが、libs/gdx-audio-sources.jar明らかにクラスの名前ではありません。

したがって、次のように実行できるコロンで区切られたファイル名が必要です。

java -cp $(printf "%s:" libs/*) tiles output file
于 2012-10-20T15:46:50.850 に答える