我正在尝试在Ubuntu Linux发行版上安装Java Development Kit(JDK),但我无法安装它.
在Ubuntu上安装它的步骤是什么?
我使用IntelliJ IDEA作为我的开发环境,使用Maven作为依赖管理.我经常在IDEA之外构建我的项目结构(目录,poms等),然后使用将项目导入IDEA Import project from external model.这很好用,除了在我的poms中我指定maven-compiler-plugin应该使用JDK 1.6,当我导入时,IDEA告诉我那个Language Level Changed和那个Language level changes will take effect on project reload,然后提示重新加载项目.这很烦人,因为我总是使用相同的JDK版本.
如何更改IntelliJ IDEA使用的默认JDK,以便每次导入新项目时都不必重新加载项目?
尝试在Android Studio中编译项目时出现以下错误:
Gradle: error: diamond operator is not supported in -source 1.6
Run Code Online (Sandbox Code Playgroud)
在我找到的所有项目偏好中,我已将1.7设置为目标.项目SDK中1.7 SDK下显示的路径也是java 1.7安装的正确路径.
即使我在终端中运行java -version,它也告诉我我正在运行java 1.7.
我试图将JAVA_HOME env变量设置为:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
错误不会消失.如何消除错误?
我在 Ubuntu 中有一个 Gradle 项目。它是用 Java 14 编写的。我安装了 Java 14 JDK。当我从命令行构建它时,一切正常,但没有人想使用命令行!当我在 IntelliJ Idea 中打开它时,它会抛出一个错误:
* Where:
Initialization script '/tmp/ijmapper.gradle`
* What went wrong:
Could not compile initialization script '/tmp/ijmapper.gradle`.
> Startup failed:
General error during semantic analysis: Unsupported class file major version 60.
Run Code Online (Sandbox Code Playgroud)
紧随其后的是一段长而无用的堆栈跟踪,其中说了很多关于 Groovy 的信息。(该项目不是 Groovy 项目;它是一个 Java 项目。)
主要版本 60 指的是 Java 16,该项目未使用该版本。我已经进入项目结构并确保它设置为使用 JDK 版本 14。但名称“ijmapper”表明这与 IntelliJ 有关系,这可能是 IDE 问题而不是项目问题。
映射器文件只是说:
if(!ext.has('mapPath')) ext.mapPath = { path -> path}
换句话说,一个简单的 polyfill。
有谁知道这里发生了什么以及如何解决它?我已经浪费了一天的时间来尝试让它发挥作用,我快到这里了!
因为我的Java源代码和目标必须是JRE 1.6兼容的,所以我需要设置options.bootClasspath一个包含1.6版本rt.jar和的路径jce.jar.它必须建立在Windows和Unix(Linux/Solaris)上.这样做的正确方法是什么?我现在在我的顶层使用以下方法build.gradle,它可以工作,但它似乎远非优雅,尤其是依赖于os的分隔符:或;:
import org.apache.tools.ant.taskdefs.condition.Os
subprojects {
apply plugin: 'java'
compileJava {
sourceCompatibility = 1.6
targetCompatibility = 1.6
def java6_home = System.getenv("JAVA_HOME_6")
def java6_lib = "C:/localdata/Program Files (x86)/Java/jdk1.6.0_45/jre/lib/"
if (java6_home != null) {
java6_lib = java6_home + "/jre/lib/"
}
def sep = ':'
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
sep = ';'
}
options.bootClasspath = java6_lib + "rt.jar" + sep + java6_lib + "jce.jar"
}
}
Run Code Online (Sandbox Code Playgroud) 在我的所有项目中,我使用gradle并指定以下内容:
sourceCompatibility = "1.7"; // for example
targetCompatibility = "1.7"; // defaults to sourceCompatibility
Run Code Online (Sandbox Code Playgroud)
现在,我安装了三个不同版本的JDK,从1.6到1.8.为了从一个版本切换到另一个版本,我source改变了shell文件PATH,JAVA_HOME甚至JDK_HOME.
偶然可能会发生我使用错误的JDK版本而我不希望...在尝试任何编译任务之前是否有可能检查编译器版本是否等于targetCompatibility?
我的一个项目需要Java 1.8,但有时我们没有注意到我们使用的是旧版java,因此我们会遇到一些奇怪的错误.
我想添加签入build.gradle,这样当我们运行任何任务时,它将首先检查版本,并打印错误并立即退出.
我试图直接在build.gradle第一行添加检查,但它仍然执行其他一些任务,例如(clean,compileJava)在检查发生之前,当我运行时:
$ ./gradlew
Run Code Online (Sandbox Code Playgroud)
怎么做正确?
我正在使用 Kotlin 开发 Android 应用程序。我正在通过命令行 ./gradlew klint 运行 kotlin linter。
但这给了我一个错误:
Gradle 4.4 需要 Java 7 或更高版本才能运行。您当前使用的是 Java 6。
当我检查项目结构时,我使用的是嵌入式JDK。
我还将 android studio 更新到了最新版本。我不知道如何将嵌入式JDK更新到最新版本。
java version
“1.6.0_65”Java(TM) SE 运行时环境(版本 1.6.0_65-b14-468) Java HotSpot(TM) 64 位服务器 VM(版本 20.65-b04-468,混合模式)
which java- /usr/bin/java
echo $PATH-/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/Library/Android/sdk/platform-tools
echo $JAVA_HOME- 空的
我刚刚下载了 Flutter 并尝试使用 Google 提供的第一个默认代码来学习模拟器。但它根本不运行!
我安装了 dart 和 flutter 插件。我也改变了 jcenter() 和 google() 的顺序
像这样:
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
jcenter()
google()
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Running Gradle task 'assembleDebug'...
FAILURE: Build failed with an exception.
* What went wrong:
Could not open settings remapped class cache for 7yvt6la2007dno98lt3rzbguf (/Users/[myname]/.gradle/caches/5.6.2/scripts-remapped/settings_7iv4l88jiyzeatj2wku74hwcv/7yvt6la2007dno98lt3rzbguf/settings8410a2d21ed2f87c8a0398566330ee52).
> Could not …Run Code Online (Sandbox Code Playgroud) 我正在使用gradlew(4.10.2)+ dagger(2.18)遇到一个奇怪的问题。
问题是当我打电话时:
./gradlew :app:compileDebugAndroidTestKotlin
Run Code Online (Sandbox Code Playgroud)
构建失败并显示:
任务:Common:compileDebugJavaWithJavac FAILED
/CommonModule_ProvidesGsonFactory.java:6:错误:包javax.annotation.processing不存在,请导入javax.annotation.processing。产生 ;
/CommonModule_ProvidesGsonFactory.java:8:错误:找不到符号@ 生成的(
但是,如果我从Android Studio运行任务,则该任务成功,并且在匕首生成的类中@Generated 不存在。
您是否有一些避免使用@Generated注释的线索./gradlew?