Open saltfish666 opened 6 years ago
public class Hi{
public static void main(String args[]){
System.out.println("hi");
}
}
$javac Hi.java
//成功编译
$ javap -c Hi.class
Compiled from "Hi.java"
public class Hi {
public Hi();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3 // String hi
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
//可见 java.lang包是默认导入的
$ tree
.
├── Main.java
└── com
└── a
└── Hi.java
import com.a.Hi;
public class Main{ public static void main(String args[]){ Hi p1 = new Hi(); p1.sayHi(); } } // 包名和目录名好像没什么区别
Main.java
import com.a.Hi;
public class Main{ public static void main(String args[]){ Hi p1 = new Hi(); p1.sayHi(); } }
$ javac Main.java //报错 $ javac com/a/Hi.java $ javac Main.java //成功
import 引入的是 .class,而不是.java
将Main.class 移动到其他地方,无法运行---import是根据相对目录动态链接的。
将com文件夹移动到相同目录后,可以运行Main.class.
javac -cp /Users/apple/Desktop/springt/sp/spring-framework-5.0.5.RELEASE/libs/spring-beans-5.0.5.RELEASE.jar:/Users/apple/Desktop/springt/sp/spring-framework-5.0.5.RELEASE/libs/spring-context-5.0.5.RELEASE.jar Main.java
虽然可以,总是缺少依赖的类
终于在idea调试好了 后面 在 IDEA file--Project Struct --Models - dependencies --+ library 中将 Spring 的 libs 目录添加进去就行了。
编译需要的jar包和编译后的class文件要提前设置好目录,不能轻易改动