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

标签 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

最佳答案

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

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

这样你就可以简化你的 javac 语句:

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

还取决于平台,分隔符为 ; (windows) 或 : (unix)。

关于Javac 找不到类路径中引用的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37505764/

相关文章:

c++ - 由于 ELFCLASS64 错误,如何使用 "make"来使用 64 位库

java - 在 CLASSPATH 中具有 Jar 的终端中编译 Java 代码

java - 无论java应用程序的类路径指定执行返回: "Error: Could not find or load main class"

java - 如何使用 FileNameFilter 列出目录中的最新文件

java - 从其编号创建 Unicode 字符

c - 我应该如何用 cc 编译这个旧代码

macos - 在 Swift 中使用 VLCKit

java - 我如何告诉 javac 如何找到 imageio 类?

java - 如何在 JSON 对象中添加 URL 字符串

Java REST客户端——将curl代码重写为Java代码