在java中配置类路径

在java中配置类路径,java,Java,我对java不熟悉 我有一个示例结构,如下所示: /folder/foo.java /folder/bar.java /folder/foobar.java 现在我正在尝试运行foobar.java,但是我得到了以下异常 Exception in thread "main" java.lang.ClassNotFoundException: /folder/foobar at java.lang.Class.forName0(Native Method) at java.lan

我对java不熟悉

我有一个示例结构,如下所示:

/folder/foo.java /folder/bar.java /folder/foobar.java
现在我正在尝试运行foobar.java,但是我得到了以下异常

Exception in thread "main" java.lang.ClassNotFoundException: /folder/foobar
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
然后我尝试通过执行以下操作来配置它

java -classpath  .  foobar 
Exception in thread "main" java.lang.NoClassDefFoundError: foobar
Caused by: java.lang.ClassNotFoundException: foobar
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
有什么线索吗?
谢谢

首先,您需要编译java文件:

javac /folder/*.java
然后可以使用
main()
函数运行类:

java -cp . folder.foobar

首先,您需要编译java文件:

javac /folder/*.java
然后可以使用
main()
函数运行类:

java -cp . folder.foobar

类路径的默认值为“.”,即当前目录。classpath环境变量的值覆盖此值。 如果java命令使用–cp或–classpath选项发出,它将覆盖默认的“.”和classpath环境变量值

下面是在类执行期间设置类路径的示例 C:>java-classpath“.”com.abc.example.SayHello

与需要给出确切路径的编译不同,要运行类文件,我们需要遵循包结构

这是由于类加载器试图通过组合其包和类名来解析类位置的方式造成的。您必须位于包根位置,并发出指定包结构的java命令

C:>java com.abc.example.SayHello


你好

类路径的默认值是“.”,即当前目录。classpath环境变量的值覆盖此值。 如果java命令使用–cp或–classpath选项发出,它将覆盖默认的“.”和classpath环境变量值

下面是在类执行期间设置类路径的示例 C:>java-classpath“.”com.abc.example.SayHello

与需要给出确切路径的编译不同,要运行类文件,我们需要遵循包结构

这是由于类加载器试图通过组合其包和类名来解析类位置的方式造成的。您必须位于包根位置,并发出指定包结构的java命令

C:>java com.abc.example.SayHello


你好

看起来您需要通过类似“javac foobar.java”的方式将foobar.java编译成foobar.class。看起来您需要通过类似“javac foobar.java”的方式将foobar.java编译成foobar.class