0

当我将一个包导入我的MyLib类(需要-cpjavac)时,我无法再编译我的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
4

1 回答 1

0

使用“-cp path1:path2” - 冒号分隔。(分号适用于 windows)(引用 cp 的参数....

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

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

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

所以在张贴的情况下 - “。” 被设置为路径(CLASSPATH 或默认值),直到使用覆盖该默认值的 -cp - 所以它需要重新添加。

于 2020-02-17T13:26:02.980 回答