1. java文件中不含package.
javac *.java ==> 产生相关class文件
java Hello ==> 运行含有main方法程序
2. java文件中含有package
大型系统中的java文件常常有package,这是编译要特别注意。
如果对某个目录下的java文件进行编译时,就要特别注意。易出下列问题:
Exception in thread "main" java.lang.UnsupportedClassVersionError: MiniDuckSimulator : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: MiniDuckSimulator. Program will exit.
编译操作为:
javac [package对应目录]\*.java
==> 编译package目录下的java文件,注意此时在package目录外
==> 或进入java文件所在目录,直接用 javac *.java
java [package目录].Hello
==> 如果package目录为 com\jj\simu, 那么应该为: java com.jj.simu.Hello, 注意在package目录外操作。
==> 可能还要: java -classpath . [package目录].Hello , 表示在当前目录下搜索。
3. 举例说明
java文件如下,文件所在目录为:D:\src\com\jameliu\simusuck
package com.jameliu.simusuck;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello the world");
}
}
1) 从dos中进入D:\src\中
2) 编译class
i) 方法一: 直接输入命令: javac com\jameliu\simusuck\Hello.java
ii) 方法二: 进入com\jameliu\simusuck\目录中,输入命令:javac Hello.java
3) 运行
请保证在D:\src\目录下,然后运行下列命令:
i) 方法一: 直接输入命令: java com.jameliu.simusuck.Hello
ii) 方法二:如果方法一出现Error: Could not find or load main class com.jameliu.simusuck.Hello,请用下列命令:
java -classpath . com.jameliu.simusuck.Hello
意思为:在当前目录下搜索com.jameliu.simusuck.Hello