使用 javac 和 java 在其他目录下用 extern classes 执行 class 文件
use javac and java to excute class file with extern classes under other directory
我尝试使用 javac 编译我的 java 文件 javac Main.java -cp ./lib HelloWorld.java
我得到了这个 javac: file not found: HelloWorld.java
这是我的 java 源文件:
Main.java 下./
import lib.*;
public class Main
{
public static void main (String []args)
{
HelloWorld hw = new HelloWorld ();
System.out.println (hw.getMsg ());
}
}
./lib 下的 和 HelloWorld.java
package lib;
public class HelloWorld
{
public String getMsg ()
{
return "HelloWorld!";
}
}
如有任何帮助,我们将不胜感激!
你的命令应该是
javac Main.java lib/HelloWorld.java
您的尝试失败有几个原因:
-cp lib
(如果需要)应该在源代码路径名之前
- class路径不用于查找源文件;用于查找编译文件。
在这种情况下,由于另一个原因,将 class 路径设置为 ./lib
是错误的。目录 lib
实际上对应于 HelloWorld
class 的包名。如果 class 路径是 ./lib
,那么 java
和 javac
将在
中查找 HelloWorld.java
的编译版本
./lib/lib/HelloWorld.class
我尝试使用 javac 编译我的 java 文件 javac Main.java -cp ./lib HelloWorld.java
我得到了这个 javac: file not found: HelloWorld.java
这是我的 java 源文件:
Main.java 下./
import lib.*;
public class Main
{
public static void main (String []args)
{
HelloWorld hw = new HelloWorld ();
System.out.println (hw.getMsg ());
}
}
./lib 下的 和 HelloWorld.java
package lib;
public class HelloWorld
{
public String getMsg ()
{
return "HelloWorld!";
}
}
如有任何帮助,我们将不胜感激!
你的命令应该是
javac Main.java lib/HelloWorld.java
您的尝试失败有几个原因:
-cp lib
(如果需要)应该在源代码路径名之前- class路径不用于查找源文件;用于查找编译文件。
在这种情况下,由于另一个原因,将 class 路径设置为 ./lib
是错误的。目录 lib
实际上对应于 HelloWorld
class 的包名。如果 class 路径是 ./lib
,那么 java
和 javac
将在
HelloWorld.java
的编译版本
./lib/lib/HelloWorld.class