天天看点

windows中java命令行执行

  • java -classpath C:\Users\Administrator\Desktop\jsp-springboot-demo.jar; com.mei.JspSpringBootDemo
  • java -classpath .;C:\Users\Administrator\Desktop\jsp-springboot-demo.jar; com.mei.JspSpringBootDemo
windows中java命令行执行

字节码一个打包,一个不打包,都加载到jvm中。

打包的jar编译级别java12,未打包的是java1.8

发现,jvm一旦加载一个类,重复的类不会再加载。

  • 第一次执行由于客户端是java8,打包的jar是java12,报错
  • 第二次执行,优先加载当前目录的字节码,所以未报错。

jar包冲突,只要是其它依赖该包的类,由于两个名称相同,但是版本或实现不同。jvm只会加载其中的一个。若依赖该类,使用的是另外一个,但是该实现,没有相应的成员,就会报错,类的方法不存在异常,一般spring ioc,实例化bean时,就会报错,无法启动。