javac 添加类路径破坏了我的本地类编译

标签 java import javac java-package

当我将包导入到我的 MyLib 类(需要 -cp 到 javac)时,我无法再编译我的 MyMain 类。

MyMain.java:

class MyMain
{
    public static void main (String [] args)
    {
        MyLib.do_stuff ();
    }
}

MyLib.java:

import com.google.gson.JsonElement;

class MyLib
{
    public static void do_stuff ()
    {
        System.out.println ("Hello.");
    }
}

当我javac MyLib.java时,我确实这样做了

javac -cp GSON_JAR_PATH MyLib.java

这可行,但如果我

javac MyMain.java

我明白了

./MyLib.java:1: error: package com.google.gson does not exist
import com.google.gson.JsonElement;

但是如果我将 -cp 添加到编译命令

javac -cp GSON_JAR_PATH MyMain.java

我明白了

MyMain.java:5: error: cannot find symbol
                MyLib.do_stuff ();
                ^
  symbol:   variable MyLib
  location: class MyMain

最佳答案

使用“-cp path1:path2” - 冒号分隔。 (分号在 Windows 上有效)(cp 的参数被引用......

javac -cp path1:path2 //or ; for windows.

注释 1 - 设置 -cp 覆盖任何现有的 CLASSPATH 环境或默认值 路径设置。

注 2 - 如果没有 CLASSPATH 设置,则默认值为“.” - 直到 -cp 覆盖它。

所以在发布的案例中 - “.”已为路径(CLASSPATH 或默认值)设置,直到使用 -cp 覆盖该默认值 - 因此需要将其添加回。

关于javac 添加类路径破坏了我的本地类编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60263246/

相关文章:

java - 在并行流中获取安全上下文时主体为空

javascript - 将所有必需的 react-native 组件导入到一个文件中,然后将其导出

javac -cp参数错误 "javac: file not found:"

ant错误无法将旧文件重命名为临时文件

java - 使用 Postman 进行 Google reCaptcha 测试

java - 错误 :Execution failed for task ':app:dexDebug' . com.android.ide.common.process.ProcessException

java - JBoss AS 7.1 上的 session 计数

linux - .import csv 计算列数错误

C++ 导入和重命名/重新保存图像

java - Ant 宏: fileset as javac src element