Java 11 最近到了,众所周知,这个版本没有安装文件。
当然,要在没有安装程序的情况下安装 Java,我已将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹地址(由对类似问题的公认回复提供建议)。
唯一的问题是所有关于系统设置的建议对我的机器没有任何影响:
那么,实际上有没有办法安装这个版本?
感谢您将来的回答以及没有将我的问题标记为重复(原因如上所述)
我想使用运行/调试配置从 IntelliJ IDEA使用 Maven运行HelloWorld JavaFX 11 应用程序,以便能够调试应用程序。
我在 IntelliJ IDEA 中使用pom.xml和HelloFX.java创建了一个 Maven 项目。我可以成功地生成项目并运行它执行规定compile和exec:java目标。
但是当我使用带有 VM options 的运行/调试配置运行它时--add-modules=javafx.controls,我得到:
启动层
java.lang.module.FindException: Module javafx.controls not found初始化时出错
我设法运行它的唯一方法是下载JavaFX 运行时并将 VM 选项设置为--module-path /path/to/javafx-sdk-11/lib --add-modules=javafx.controls.
但是有没有办法使用从 Maven 下载的工件来运行它?正如我所认为的,IntelliJ IDEA 可以在运行时使用 Maven 工件。还是我只是弄错了什么?
PS 我知道这个答案,但它没有描述我想要做什么。
我被困在一个非常基本的问题上。我使用 JavaFX 创建了一个简单的 hello world 程序,它在 JDK 1.8 上运行良好。但是当我切换到 JDK-11 时,它会抛出以下异常:
Error: Could not find or load main class application.Main
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
Run Code Online (Sandbox Code Playgroud)
以下是我在eclipse中写的代码。
package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
private Scene theScene;
@Override
public void start(Stage primaryStage) {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("MyScene.fxml"));
Parent mainPane = loader.load();
theScene = new Scene(mainPane);
primaryStage.setScene(theScene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public void setTheScene(Scene theScene) …Run Code Online (Sandbox Code Playgroud) 我想使用 jlink 从 Scala 源代码为所有平台(darwin、linux、windows)创建自包含的应用程序包。似乎jlink只适用于新的(相对)拼图模块 - 所以我需要将我的代码打包为一个模块。在 Java 世界中,通过将特殊的 module-info.java 文件放置到将成为模块的包中,似乎很容易实现。
我试图遵循直觉,只是将这个 module-info.java 放入src/main/java/my.package.name/module-info.java. 虽然这不起作用。似乎scalac正在尝试像往常一样读取 module-info.java 的 Java 文件(事实并非如此),因此出现错误
Run Code Online (Sandbox Code Playgroud)module-info.java:1:8: illegal start of type declaration [error] module my.package.name { [error] ^
我需要做什么才能将我的 Scala 代码打包为一个模块?
开放 JDK:11 Scala:2.12.4 SBT:1.1.6
我开发并分发了使用Apache Batik和JavaCV的Java Swing应用程序。我已经通过Java 1.6、7和8更新了它。macOS,Windows和Linux的安装程序是使用Javapackager构建的。Java 8的支持在19年1月终止,我找不到在新的LTS版本Java 11上打包和分发的解决方案。
JavaCV或Batik都不生产模块化jar,但是我设法将它们重新打包到可以在Java 11上编译并生成可运行jar的程度,app可以正常工作,但我不能打包以进行分发。我打算降级到Java 10以使用javapackager并从那里捆绑11个运行时,但是它使用jlink生成自定义运行时,因为JavaCV和Batik不是模块化的,所以jlink失败了。由于Batik和JavaCV中的引用不令人满意,即使我的应用程序在没有它们的情况下也能正常工作,但jdeps不会生成用于修补的module-info.class并使它们模块化。
结果,我将不得不离开Java 8的代码库,即使不再支持它,也要交付它。
我知道有一个调用来创建javapackager的替代品,但是直到Java 8被弃用之后才会出现。而且我仍然需要Batik和JavaCV项目来重构和构建模块化jar,以生成自定义运行时。
任何人都可以提供其他解决方案吗?我错过了什么吗?谢谢。
我没有找到任何很好的例子来概述使用Java新的HTTP2支持.
在以前的Java(Java 8)版本中,我REST使用多个线程对服务器进行了多次调用.
我有一个全局参数列表,我会通过参数来做出不同类型的请求.
例如:
String[] params = {"param1","param2","param3" ..... "paramSomeBigNumber"};
for (int i = 0 ; i < params.length ; i++){
String targetURL= "http://ohellothere.notarealdomain.commmmm?a=" + params[i];
HttpURLConnection connection = null;
URL url = new URL(targetURL);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
//Send request
DataOutputStream wr = new DataOutputStream (
connection.getOutputStream());
wr.writeBytes(urlParameters);
wr.close();
//Get Response
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
//Do some stuff with this specific http response …Run Code Online (Sandbox Code Playgroud) 我尝试编译新的模块化Java 11应用程序时收到以下错误消息:
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for C:\Users\inter\.m2\repository\xalan\xalan\2.7.2\xalan-2.7.2.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module
Run Code Online (Sandbox Code Playgroud)
这似乎是由于依赖关系引起的问题。我什至找不到哪个模块将其引入,因此我可以对其进行更新。
我正在使用openjdk 11.0.2,IntelliJ 2018.3.4,Maven
关于如何解决或解决此问题的任何建议?我发现有关此问题的文档很少。
从jShell脚本内部,是否可以访问或注册也在创建JShell的代码中定义的变量?
当前,似乎没有机制可以访问或向Shell实例注册变量,或者从JShell内部不返回任何字符串类型(例如对象或lambda等)。
例如:
导入jdk.jshell.JShell;
导入jdk.jshell.JShellException;
导入jdk.jshell.SnippetEvent;
导入java.util.List;
公共班级主要{
公共静态void main(String [] args)抛出JShellException {
var localVar = 1;
JShell shell = JShell.create();
//如何在shell实例中注册localVar变量或从作用域访问变量
列表事件= shell.eval(“ var x = localVar;”);
SnippetEvent event = events.get(0);
System.out.println(“种类:” + event.snippet()。kind()+“,值:” + event.value());
}
}
我已将一个项目从Java 1.8迁移到Java11。在此过程中,我必须安装较新版本的eclipse才能使用Java 11 jdk。
Eclipse IDE for Enterprise Java Developers.
Version: 2018-12 (4.10.0)
Build id: 20181214-0600
Run Code Online (Sandbox Code Playgroud)
该应用程序是一个maven项目,可以从命令行成功编译,但是eclipse抱怨它无法解析javax.xml.datatype.XMLGregorianCalendar。
我已经使用右键单击项目Maven->更新项目,从Eclipse更新了Maven项目。
我从项目中可以看到maven依赖项jaxp-api-1.4.2.jar被包括在内,并且类javax.xml.datatype.XMLGregorianCalendar存在。
如何解决Eclipse抱怨类javax.xml.datatype.XMLGregorianCalendar无法解决的问题?
带有未解析的javax.xml.datatype.XMLGregorianCalendar的类:
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2018.08.17 at 01:14:19 PM BST
//
package com.qlsdistribution.fps.production.contentagent;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType;
import …Run Code Online (Sandbox Code Playgroud) 我有一个JavaFX 8项目,该项目是在Windows 10上使用NetBeans 8.2开发的。我以此为基础构建的JAR已在华硕Tinker板上运行。
我想使用JDK 11和JavaFX 11来利用一些新功能,并希望获得一些性能提升。安装NetBeans 10后并在以下教程的帮助下:https : //openjfx.io/openjfx-docs/#introduction(JavaFX和NetBeans>非模块化与Maven一节),我已经成功移植并可以在我的机器上运行该应用程序Windows系统。
通过IDE或使用命令提示符:java --module-path%PATH_TO_FX%--add-modules = javafx.c ontrols,javafx.fxml,javafx.graphics,javafx.media -jar Praatpaal2-2.0-jar-with -dependencies.jar
与JavaFX 8相比,现在将JavaFX模块添加为模块。
但是,当我在华硕Tinker Board(正在运行Tinker OS(Debian))上执行相同操作时,出现以下错误:
引导层java.lang.module.FindException初始化期间发生错误:javafx.base的哈希(d87df23ee5c54c7ff062c4f8572bab8aaf6c1775854662008fccdb993957bcad)与预期的哈希(320c5b0ffaf22fec9daf0c3e364f6598631b333fa95015055)
关于此哈希不匹配的信息很少。我的怀疑是它要么尝试加载Windows版本的javafx.base.jar,要么我在Maven pom.xml中使用org.openjfx,但在运行时引用了GluonHQ JavaFX,或者我的模块化设置有问题。
pom.xml的依赖项和构建部分如下所示:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
<classifier>win</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
<classifier>win</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>11.0.2</version>
<classifier>win</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>11.0.2</version>
<classifier>win</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
<classifier>linux</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
<classifier>linux</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>11.0.2</version>
<classifier>linux</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>11.0.2</version>
<classifier>linux</classifier>
</dependency>
<dependency> …Run Code Online (Sandbox Code Playgroud)