我正在使用enthuware来练习类路径和包的模拟问题。这是问题所在。
//in file ./Foo.java
public class Foo {
public static void main(String[] args) {
System.out.println("In Foo");
}
}
//in file ./com/Foo.java
package com;
public class Foo {
public static void main(String[] args) {
System.out.println("In com.Foo");
}
}
Which of the given statements are correct assuming that the command lines are executed from the current directory with default classpath set to ./classes?
给出的选项是
给出的正确选项是选项-5。奇怪的问题是当我尝试从命令行执行option-5时,它会给我以下错误。
有人能告诉我什么是错的吗?我无法弄清楚原因。再加上这是什么
./com
类路径是什么意思?
命令更改
我注意到一件奇怪的事情,如果我更改类路径并以
运行命令java -classpath . com.Foo
它指出in com.Foo
。只要我更改命令以添加此路径./com。它给出了上面提到的错误。
感谢。
答案 0 :(得分:0)
“./ com”是当前路径的相对路径。
如果你的班级在[current_path] /com/Foo.class
您可以使用以下命令运行您的类:
java -classpath ./com com.Foo
如果您在com文件夹[current_path:com] /Foo.class中,则可以执行以下命令:
java -classpath . com.Foo