在 ubuntu 上写了个程序,发现加上package之后就不能运行了,编译可以
没加package之前的代码:
public class test
{
public static void main(String[] args)
{
System.out.println("It's a java test!");
}
}
这个编译链接都没问题
关键是我在文件开头加了package test.ja;之后运行时就报错了
错误如下,球解释:
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: test/ja/test)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: test. Program will exit.
没加package之前的代码:
public class test
{
public static void main(String[] args)
{
System.out.println("It's a java test!");
}
}
这个编译链接都没问题
关键是我在文件开头加了package test.ja;之后运行时就报错了
错误如下,球解释:
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: test/ja/test)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: test. Program will exit.
先cd /home/java
编译:javac test/ja/test.java进行编译
执行:java test.ja.test运行
加上包后,会到test/ja文件夹下去找相应的文件,找不到,报错包路径其实就是文件路径
test.ja = test/ja