рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЬрд╛рд╡рд╛ 8 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЬреЗрд╡реАрдПрдо рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдШрдЯрдирд╛ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрджреНрдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд╡рд╛ рддрдХрдиреАрдХ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред Java 8 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рдЦреА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ JRE 8 рдпрд╛ JDK 8 рдХреЛ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдХрд┐рд╕реА рднреА Linux OS рдкрд░
InfoboxCloud Cloud Infrastructure рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдмрд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдВрдЯрд░ рджрдмрд╛рдПрдВред рдЬрд╛рд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
InfoboxCloud Jelastic Cloud Platform рдкрд░, Java 8 рд╕рдкреЛрд░реНрдЯ рдЕрдЧрд▓реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдЯреИрдХ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрдж рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ, рдЬрд╛рд╡рд╛ 8 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЬрд╛рд╡рд╛ 7 рдХреЗ рддрд╣рдд рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЬрд╛рд╡рд╛ 8 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦреЗрдВрдЧреЗред
рдПрдХ рдЖрджреЗрд╢ рдореЗрдВ рдЬрд╛рд╡рд╛ 8 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЬрд╛рд╡рд╛ рдХреЗ рдЙрдкрдпреБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрдиреНрдлреЛрдмреЙрдХреНрд╕рдХреНрд▓рд╛рдЙрдб рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдорд╢реАрди рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рд╡реЗрдВрдбрд░-рд▓реЙрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдирдлрд╝реЛрдмреЙрдХреНрд╕рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЗрдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред CentOS 6, Ubuntu 12.04, Ubuntu 13.10, Debian 7, OpenSuse 13.1 рдХреЗ рд╕рд╛рде i686 рдФрд░ x86_64 рдХреЗ рд▓рд┐рдП рдорд╢реАрдиреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред
Jdk 8
wget repository.jelasticloud.com/scripts/jvm/8/jdk8 && chmod +x jdk8 && ./jdk8 && rm -rf jdk8
рдЬреЗрдЖрд░рдИ 8
wget repository.jelasticloud.com/scripts/jvm/8/jre8 && chmod +x jre8 && ./jre8 && rm -rf jre8
рдЬрд╛рд╡рд╛ 7 рдХреЛ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдмреЗрд╢рдХ, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ JDK7 рдФрд░ JRE7 рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЬрд╛рд╡рд╛ 7 рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХреАред
рдЬрд╛рд╡рд╛ 7 рдФрд░ 8 рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЗрд╕реЗ рдкрд╣рд▓реЗ 7, рдлрд┐рд░ 8 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
JDK 7 рдЕрдкрдбреЗрдЯ 51
wget repository.jelasticloud.com/scripts/jvm/7u51/jdk7u51 && chmod +x jdk7u51 && ./jdk7u51 && rm -rf jdk7u51
JRE 7 рдЕрдкрдбреЗрдЯ 51
wget repository.jelasticloud.com/scripts/jvm/7u51/jre7u51 && chmod +x jre7u51 && ./jre7u51 && rm -rf jre7u51
рд╣рдо рдЬрд╛рд╡рд╛ 8 рдФрд░ рдЬрд╛рд╡рд╛ 7 рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ
рдЬрд╛рд╡рд╛ 8 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ рдЙрджреНрдпрдо рдХреЛ рдЕрдкрдиреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХрдИ рдФрд░ рдЕрдкрдбреЗрдЯ рд▓реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрднреА рдЖрдк java 8 рдореЗрдВ рдЯреЗрд╕реНрдЯ рдФрд░ java 7 рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдорд╛рд╡реЗрди рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд▓рдЧрдЗрди рджреЛ рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рд╕рдВрдХрд▓рди рдФрд░ рдкрд░реАрдХреНрд╖рдгрдХрдВрдкрд╛рдЗрд▓ред рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдкрдиреА pom рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ:
<properties> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.testTarget>1.8</maven.compiler.testTarget> <maven.compiler.testSource>1.8</maven.compiler.testSource> </properties>
рдЕрдм рдЖрдкрдХрд╛ src / main / java java 7 рдХреЗ рддрд╣рдд рдХрдореНрдкрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ src / main / test compiles 8 рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓ pom рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреБрдирдГ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдЗрд╕ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрдмреНрд░реИрдм рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдорд╛рд╡реЗрди рдХреЛрдб рдореЗрдВ рд╕реНрд░реЛрдд рдЯреИрдЧ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред Github Gist рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ редрдЕрдм рдЖрдк JDK8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрдкреВрд░реНрдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд░реНрдорд╛рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.3.1</version> <executions> <execution> <id>enforce-java</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireJavaVersion> <version>${maven.compiler.testTarget}</version> </requireJavaVersion> </rules> </configuration> </execution> </executions> </plugin>
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡рдпрдВ 7 рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдкрд░ рднреА, рдХрдВрдкрд╛рдЗрд▓рд░ 7 рдФрд░ 8 рдореЗрдВ рдПрдкреАрдЖрдИ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрднреА рднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ рднрд▓реЗ рд╣реА рдЖрдк src / main / java рдореЗрдВ API 8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдЗрдП рдЪреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░реЛрдХрдирд╛:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>animal-sniffer-maven-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>signature-check</id> <phase>verify</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <signature> <groupId>org.codehaus.mojo.signature</groupId> <artifactId>java17</artifactId> <version>1.0</version> </signature> </configuration> </plugin>
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдЗрдП рдЕрдм рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ JDK8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ jdk 7:
import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; public class DoSomething { public String execute(Callable<String> call) throws Exception { return call.call(); } public List<String> list() { return Arrays.asList("a", "b", "c", "d"); } }
JDK 8 рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ:
import java.util.Optional; import org.junit.Assert; import org.junit.Test; public class DoSomethingTestClase { public static final String TEST = "ABCD"; @Test public void shouldReturnString() throws Exception { String result = new DoSomething().execute(()-> TEST); Assert.assertEquals(TEST, result); } @Test public void shouldFilterResult() throws Exception { Optional<String> result = new DoSomething().list() .stream() .map((a)-> a.toUpperCase()) .reduce((a, b)->a+b); Assert.assertTrue(result.isPresent()); Assert.assertEquals(TEST, result.get()); } }
JDK8 Aslak Knutsen рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
InfoboxCloud рдХреЗ рд╕рд╛рде рд╕рдлрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ!