我正在尝试运行一个使用位于单独子文件夹中的类的简单类。它编译正常,但是,在运行时会发生异常。
lol.java:
public class lol
{
public static void main(String Args[])
{
test();
}
public static Input test()
{
Input asdf = new Input();
return asdf;
}
}
Input.java:
public class Input
{
public int x;
}
我使用命令编译:
javac lol.java HOME/input.java
编译后的文件夹结构:
Test
|
|---lol.java
|---lol.class
|---HOME
|
|---Input.java
|---Input.class
编译没有错误;但是,我不确定以后如何运行它。
我尝试用以下方式运行它:
java lol
但现在无法找到“输入”类,因为它位于单独的文件夹中,因此导致以下异常:
java.lang.NoClassDefFoundError: Input
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: Input
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
Exception in thread "main"
如何在保持此文件夹结构的同时运行它?
答案 0 :(得分:3)
您必须将HOME添加到类路径中:
在Windows上:
java -classpath .;HOME lol
其他一切:
java -classpath .:HOME lol