相关疑难解决方法(0)

是否可以使用Java 8进行Android开发?

在网上搜索,目前尚不清楚Java 8是否支持Android开发.

在我下载/设置Java 8之前,有人可以在任何"官方"文档中指出我说Java 8是否支持Android开发.

java android java-8 android-gradle-plugin

594
推荐指数
12
解决办法
27万
查看次数

用Java 8编写的程序可以在Java 7上运行吗?

我有点困惑.

  1. Oracle称Java 8与Java 7高度兼容(向后).但是,Java 8程序可以在Java 7上成功运行(SE/EE)的可能性有多大?

  2. 如果第一点是真的,Java 8应用程序将在Java 7服务器支持上部署和执行?例如,Tomcat 8还是WildFly?

java backwards-compatibility java-server java-8

50
推荐指数
3
解决办法
5万
查看次数

Java版本之间是否存在后向不兼容的具体示例?

Java版本之间是否存在不兼容性,其中针对Java版本X的Java源代码/ Java类文件将无法在版本Y(其中Y> X)下编译/运行?

"Java发布"我指的是以下版本:

  • JDK 1.0(1996年1月)
  • JDK 1.1(1997年2月)
  • J2SE 1.2(1998年12月)
  • J2SE 1.0(2000年5月)
  • J2SE 1.4(2002年2月)
  • J2SE 5.0(2004年9月)
  • Java SE 6(2006年12月)

家庭规则:

  • 请尽可能包含参考和代码示例.
  • 请尽量在答案中具体/具体.
  • 被标记为@Deprecated的类不计为向后不兼容.

java jvm bytecode backwards-compatibility

48
推荐指数
7
解决办法
3597
查看次数

你能用Java 8编译一个类,然后在Java 7中使用它吗?

你能用Java 8编译一个类,然后在Java 7中使用它吗?

我想用一个简单的接口(Java 7兼容)编写一个实用程序JAR,但是在里面使用lambdas.然后我想在一些必须用JDK 7编译的代码中使用该实用程序.

可能吗?


正如你所看到的,有一些相互矛盾的答案......所以,真相是什么?;-)

java java-8

21
推荐指数
2
解决办法
2万
查看次数

包含lambda表达式的代码是否会在较旧的JVM上运行,例如,对于java 1.6?

Lambda是在Java8中引入的.包含lambda表达式的代码是否会在较旧的JVM上运行,例如,对于java 1.6?我担心二进制兼容性而不是源代码兼容性.这是一个简单的是/否问题.

谢谢.

java lambda java-8

20
推荐指数
3
解决办法
1977
查看次数

是否可以在运行时访问Java 8类型信息?

假设我在一个使用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 reflection annotations type-annotation

15
推荐指数
1
解决办法
1215
查看次数

如何用Java 11生成代码,但要针对Java 8及更高版本?

我正在开发一个小型库,出于明显的原因,我想使用所有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)

java javac cross-compiling java-11

15
推荐指数
5
解决办法
4880
查看次数

Java是向后兼容的,但是当我们将jdk从1.6升级到1.8时,为什么我们需要升级许多库?

最近,我们将Jdk版本升级1.61.8我的一个Java项目中.但是有一些编译或运行时错误,所以我必须升级一些库:

  • gradle:1.9to1.10
  • 春天:3.x4.x

那是因为他们使用的是早期版本的ASM,但仅支持jdk 1.8 5.x

Java表示它是向后兼容的,但为什么原始版本的库无法直接与jdk 1.8一起使用?

java migration java-7 java-8

10
推荐指数
2
解决办法
5873
查看次数

部署到Google App Engine

我正在努力使用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)

java google-app-engine

9
推荐指数
1
解决办法
3831
查看次数

Android应用可以使用java 8编译的jar吗?

假设我创建了一个独立于Android框架的java库.这个java库中的类/方法是用Java 8流和lambdas 编写的.然后我将我的java库编译成jar并将其作为依赖项添加到我的Android项目中.

即使Android本身只支持Java 7,我的Android应用程序可以使用该jar吗?

谢谢你的任何信息.

java android

9
推荐指数
1
解决办法
1046
查看次数