尝试编译最简单的Spring程序:
Main.java
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//下面的代码没用
public class Main {
private String who = null;
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld hw1 = (HelloWorld)factory.getBean("hello");//map.get("hello")
System.out.println(hw1.getInfo());
System.out.println(hw1);
}
}
命令行:
$javac -cp /path/of/spring-beans.jar:/path/of/spring-context-support.jar Main.jar
完整的:
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-support-5.0.5.RELEASE.jar Main.java
报错:
Main.java:3: error: package org.springframework.context.support does not exist
import org.springframework.context.support.ClassPathXmlApplicationContext;
^
Main.java:12: error: cannot find symbol
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
开始我以为自己哪里出错了,但是解压jar开发包发现:org.springframework.beans.factory.BeanFactory
正常,但是spring-context-support-5.0.5.RELEASE
根本没有context.support
目录:
$ tree -L 3
.
├── META-INF
│ ├── MANIFEST.MF
│ ├── license.txt
│ └── notice.txt
└── org
└── springframework
├── cache
├── mail
├── scheduling
└── ui
7 directories, 3 files
$ pwd
/Users/apple/Desktop/springt/sp/spring-framework-5.0.5.RELEASE/libs/spring-context-support-5.0.5.RELEASE
为什么会出现这种情况?
我又重新下载了几个早些版本的Spring jar包,同样没有相应的目录,我是哪里出错了?
检查spring-context-5.0.5.RELEASE这个jar有没引入