在网上搜索,目前尚不清楚Java 8是否支持Android开发.
在我下载/设置Java 8之前,有人可以在任何"官方"文档中指出我说Java 8是否支持Android开发.
我有点困惑.
Oracle称Java 8与Java 7高度兼容(向后).但是,Java 8程序可以在Java 7上成功运行(SE/EE)的可能性有多大?
如果第一点是真的,Java 8应用程序将在Java 7服务器支持上部署和执行?例如,Tomcat 8还是WildFly?
Java版本之间是否存在不兼容性,其中针对Java版本X的Java源代码/ Java类文件将无法在版本Y(其中Y> X)下编译/运行?
"Java发布"我指的是以下版本:
家庭规则:
你能用Java 8编译一个类,然后在Java 7中使用它吗?
我想用一个简单的接口(Java 7兼容)编写一个实用程序JAR,但是在里面使用lambdas.然后我想在一些必须用JDK 7编译的代码中使用该实用程序.
可能吗?
正如你所看到的,有一些相互矛盾的答案......所以,真相是什么?;-)
Lambda是在Java8中引入的.包含lambda表达式的代码是否会在较旧的JVM上运行,例如,对于java 1.6?我担心二进制兼容性而不是源代码兼容性.这是一个简单的是/否问题.
谢谢.
假设我在一个使用Java 8类型注释的类中有以下成员:
private List<@Email String> emailAddresses;
Run Code Online (Sandbox Code Playgroud)
是否可以@Email使用反射读取在运行时使用的String类型上给出的注释?如果是这样,怎么办呢?
更新:这是注释类型的定义:
@Target(value=ElementType.TYPE_USE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Email {}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个小型库,出于明显的原因,我想使用所有Java 11功能(我现在猜不到的模块除外)来生成代码,但是我希望该库与Java 8及更高版本兼容。
当我尝试这个:
javac -source 11 -target 1.8 App.java
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
warning: source release 11 requires target release 11
Run Code Online (Sandbox Code Playgroud)
...当我查看字节码时,我看到该类的版本为0x37(Java 11):
$ xxd App.class
00000000: cafe babe 0000 0037 ...
Run Code Online (Sandbox Code Playgroud)
Java 8无法加载它:
Exception in thread "main" java.lang.UnsupportedClassVersionError: App has been
compiled by a more recent version of the Java Runtime (class file version 55.0),
this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at …Run Code Online (Sandbox Code Playgroud) 最近,我们将Jdk版本升级1.6到1.8我的一个Java项目中.但是有一些编译或运行时错误,所以我必须升级一些库:
1.9to1.103.x到4.x那是因为他们使用的是早期版本的ASM,但仅支持jdk 1.8 5.x
Java表示它是向后兼容的,但为什么原始版本的库无法直接与jdk 1.8一起使用?
我正在努力使用Google App Engine.我想做的就是:
我正在按照教程的确切步骤进行操作.我现在已经尝了好几次了.该应用程序在Jenkins中构建良好(我设法让它运行),但部署失败.
+ gcloud --project=MyProject preview app deploy target/guestbook-1.0-SNAPSHOT.war
ERROR: File [/var/jenkins/workspace/MyProject/target/guestbook-1.0-SNAPSHOT.war] is not a valid deployable item.
ERROR: (gcloud.preview.app.deploy) Errors occurred while parsing the App Engine app configuration:
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
它在本地开发Web服务器上运行良好.MyProject是项目ID(我刚刚为示例更改了它).我究竟做错了什么.我的意思是我忘了做某事吗?我已经做了五年多的Java了,我无法理解为什么做这么基本的事情应该这么难.请帮我
来自詹金斯:
Started by user User Name
Building remotely on cloud-dev-java in workspace /var/jenkins/workspace/MyGuestbook
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://source.developers.google.com/p/MyProject # timeout=10 …Run Code Online (Sandbox Code Playgroud) 假设我创建了一个独立于Android框架的java库.这个java库中的类/方法是用Java 8流和lambdas 编写的.然后我将我的java库编译成jar并将其作为依赖项添加到我的Android项目中.
即使Android本身只支持Java 7,我的Android应用程序可以使用该jar吗?
谢谢你的任何信息.
java ×10
java-8 ×5
android ×2
annotations ×1
bytecode ×1
java-11 ×1
java-7 ×1
java-server ×1
javac ×1
jvm ×1
lambda ×1
migration ×1
reflection ×1