javac 添加 classpath 破坏了我的本地 class 编译
javac adding classpath breaks my local class compilation
当我将包导入到我的 MyLib
class 时(这需要 -cp
到 javac),我无法再编译我的 MyMain
class。
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 覆盖默认值 - 因此需要将其添加回去。
当我将包导入到我的 MyLib
class 时(这需要 -cp
到 javac),我无法再编译我的 MyMain
class。
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 覆盖默认值 - 因此需要将其添加回去。