Javac找不到类路径中引用的包

时间:2016-05-29 03:04:59

标签: java compilation classpath javac

我正在尝试在Windows中使用javac编译项目,但是我收到了“包x不存在”错误。
即使包含它们的jar文件在类路径中。

这是命令,我只是添加了行返回以使其可读:

javac
  -d bin
  -sourcepath src
  -cp 
    .;
    lib/gson-2.5.jar;
    lib/jruby-complete-9.1.2.0.jar;
    lib/lwjgl-platform-2.9.3-natives-windows.jar;
    lib/lwjgl-platform-2.9.3-natives-linux.jar;
    lib/lwjgl-platform-2.9.3-natives-osx.jar;
    lib/jinput-platform-2.0.5-natives-windows.jar;
    lib/jinput-platform-2.0.5-natives-linux.jar;
    lib/jinput-platform-2.0.5-natives-osx.jar;
    lib/lwjgl.jar;
    lib/lwjgl_util.jar;
    lib/jorbis-0.0.17.jar;
    lib/jinput-2.0.5.jar;
    lib/gdx-platform-1.9.2-natives-desktop.jar;
    lib/gdx-controllers-platform-1.9.2-natives-desktop.jar;
    lib/gdx-freetype-platform-1.9.2-natives-desktop.jar;
    lib/gdx-1.9.2.jar;lib/gdx-backend-lwjgl-1.9.2.jar;
    lib/gdx-controllers-1.9.2.jar;
    lib/gdx-controllers-desktop-1.9.2.jar;
    lib/gdx-freetype-1.9.2.jar;
    lib/jlayer-1.0.1-gdx.jar;
    lib/jutils-1.0.0.jar
  src/com/azias/awbe/Launcher.java

以下是错误消息:

src\com\azias\awbe\Launcher.java:3: error: package com.badlogic.gdx.backends.lwjgl does not exist
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
                                      ^
src\com\azias\awbe\Launcher.java:4: error: package com.badlogic.gdx.backends.lwjgl does not exist
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
                                      ^
src\com\azias\awbe\Launcher.java:16: error: cannot find symbol
                LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
                ^
  symbol:   class LwjglApplicationConfiguration
  location: class Launcher
src\com\azias\awbe\Launcher.java:16: error: cannot find symbol
                LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
                                                           ^
  symbol:   class LwjglApplicationConfiguration
  location: class Launcher
src\com\azias\awbe\Launcher.java:27: error: cannot find symbol
                new LwjglApplication(new AdvanceWarsBootleg(), config);
                    ^
  symbol:   class LwjglApplication
  location: class Launcher
src\com\azias\awbe\AdvanceWarsBootleg.java:3: error: package com.badlogic.gdx does not exist
import com.badlogic.gdx.Game;
                       ^
src\com\azias\awbe\AdvanceWarsBootleg.java:4: error: package com.badlogic.gdx.graphics.g2d does not exist
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
                                    ^
src\com\azias\awbe\AdvanceWarsBootleg.java:6: error: cannot find symbol
public class AdvanceWarsBootleg extends Game {
                                        ^
  symbol: class Game
src\com\azias\awbe\AdvanceWarsBootleg.java:7: error: cannot find symbol
        public SpriteBatch batch;
               ^
  symbol:   class SpriteBatch
  location: class AdvanceWarsBootleg
src\com\azias\awbe\AdvanceWarsBootleg.java:9: error: method does not override or implement a method from a supertype
        @Override
        ^
src\com\azias\awbe\AdvanceWarsBootleg.java:17: error: method does not override or implement a method from a supertype
        @Override
        ^
src\com\azias\awbe\AdvanceWarsBootleg.java:19: error: cannot find symbol
                super.render();
                ^
  symbol:   variable super
  location: class AdvanceWarsBootleg
12 errors

1 个答案:

答案 0 :(得分:1)

使用Java 6或更高版本,classpath选项支持通配符。请注意以下事项:

Use straight quotes (")
Use *, not *.jar

所以你可以简化你的javac声明:

javac
  -d bin
  -sourcepath src
  -cp ".;libs/*"
  src/com/azias/awbe/Launcher.java

同样取决于平台,分隔符为;(窗口)或:(unix)。