Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm testing Java on a Windows Surface Pro. The Surface Pro has Java 7 Update 55, but does not have the JDK installed.

I compiled a program on my MacBook from the command line using javac. The MacBook Has Java 8 Update 5 and it includes the JDK (obviously because I compiled on the MBP).

When I move the program from the MackBook to the Surface Pro, I get the following error. Here, "moving the program" means copying the two *.class files to the new machine and trying to execute the byte codes.

java.lang.UnsupportedClassVersionError: HttpsTest : Unsupported major.minor version 52.

Trying to compile with target information results in:

$ javac -target 1.7 HttpsTest.java SSLSocketFactoryEx.java
javac: target release 1.7 conflicts with default source release 1.8

javac -help does not list any options to control the version information of the compiled program (other than target, which does not appear to work).

How do I compile my source files for down level versions of a JRE? In this case, I'm targeting Java 7 from a Java 8 machine.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
177 views
Welcome To Ask or Share your Answers For Others

1 Answer

From the command line, change your call to:

javac -source 1.7 -target 1.7 HttpsTest.java SSLSocketFactoryEx.java

The documentation for javac (for JDK 8) is here.

The documentation for javac (for JDK 9) is here.

Note: In JDK 9, -target is replaced with --release.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...