classpath中不同的编译版本jar文件

时间:2016-02-12 13:06:46

标签: java

我有我想用For W = 1 To workS_Count For C = 1 To chartS_Count Set pptSlide = pptPres.slides.add(pptPres.slides.count, ppLayoutTitle) chartS(chartS_Count).Select ActiveChart.ChartArea.Copy 'Pasting chart in PowerPoint slide with a data link pptSlide.Shapes.PasteSpecial link:=msoTrue Next C Next W 编译器编译的java源代码,它与jar文件的依赖关系1.5兼容。 我可以用下面的命令 -

成功编译我的java代码
1.6

现在我将使用C:\Program Files\Java\jdk1.5.0_22\bin>javac -source 1.5 -target 1.5 -bootclasspa th "C:\Program Files\Java\jdk1.5.0_22\jre\lib\rt.jar" -classpath "C:\Users\usr1\Documents\Software\jars\commons-io-2.4-bin\commons-io-2.4\commons-io-2.4.jar" Test.java 运行,这非常好。 Java可执行文件不会有任何问题。

但是我想知道在类路径中使用Java 1.8兼容jar文件的1.5编译器编译我的源代码会出现任何无法预料的问题。

旁注:这不是假设的假设,而是我项目的一个用例。

2 个答案:

答案 0 :(得分:1)

在我看来,在你的情况下,你将不会遇到任何问题。 当您编译包含jar文件中的代码的java文件时,编译器可能会做的是使用jar文件中存在的方法签名替换方法调用。 稍后在运行时它会尝试从jar文件加载确切的方法调用。 因此,您可以看到,只有您可以接收的异常可能是在运行时。

答案 1 :(得分:0)

如果你尝试在java 1.5中运行java 1.6,你可能会得到一个java minmax错误 但如果您的代码没有任何1.6特定代码,您仍然可以在1.5中编写