标签: java-10

Java 10 中的 var 是什么,可与 JavaScript 相媲美?

我正在阅读 Java 10 中发布的新功能,我发现了这一点:

Java 10var作为保留类型名称引入以减少冗长。它可以用作变量、方法和包名,但我们不能将其用作类或接口名。

是否var类似于varJavaScript 中的关键字?Javavar和 JavaScript之间究竟有何异同var

java java-10

2
推荐指数
1
解决办法
3313
查看次数

如何将 Hibernate 从 4.3 版升级到 5.2 版以迁移到 JDK 10?

由于JDK8 Oracle宣布不再支持,我需要将当前升级JDKJDK10.

经过研究,目前hibernate还需要从 升级hibernate 4hibernate 5,才能运行在JDK 10.

但是,有一些hibernate相关的库,我是否也应该升级,如果是,哪个版本适合?这是我当前的摘录pom.xml

<properties>
<hibernate.version>4.3.11.Final</hibernate.version>
<java-version>1.7</java-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<!-- hibernate -->
<dependency>
     <groupId>org.hibernate.javax.persistence</groupId>  
     <artifactId>hibernate-jpa-2.1-api</artifactId>
     <version>1.0.0.Final</version>
</dependency>

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-entitymanager</artifactId>
     <version>${hibernate.version}</version>
</dependency>

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>5.1.2.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

hibernate jpa java-10 hibernate-5.x

2
推荐指数
1
解决办法
8195
查看次数

在使用var的循环中键入推断

一般来说,我知道Java中的工作类型推断.但是我很好奇当你使用JDK 10新功能var时它在循环中是如何工作的 .

我的意思是我可以用这种方式编写循环

for(var i=0; i<100; i++) {
//something to do
}
Run Code Online (Sandbox Code Playgroud)

编译器如何推断应该有一个int而不是long

java java-10

2
推荐指数
1
解决办法
99
查看次数

如何使用java 10在maven中添加javafx依赖项

我切换到ubuntu 18.04.其中java 10默认为jvm

现在我使用javafx的应用程序无法再编译了.

 cannot find symbol
[ERROR]   symbol:   class ObservableMap
Run Code Online (Sandbox Code Playgroud)

我尝试将参数添加到maven-compiler-plugin以加载javafx.graphics模块.

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArgs>
                    <arg>--add-modules</arg>
                    <arg>javafx.graphics</arg>
                </compilerArgs>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

结果:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] module not found: javafx.graphics
Run Code Online (Sandbox Code Playgroud)

当然,java --list-modules | grep fx什么都不返回.

我花了10多个小时试图解决这个问题.

TL:DR我应该怎么做用Java 10编译我的JavaFX模块?

最小项目:

/pom.xml

<project>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <name>java10fx</name>

    <artifactId>java10fx</artifactId>
    <version>0.0.1</version>
    <groupId>my.test</groupId>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <release>10</release>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

/src/main/java/MyApp.java

import javafx.application.Application;
import javafx.stage.Stage;

public class MyApp  extends Application{

    public static void main(String[] args) {
        launch(args);
    } …
Run Code Online (Sandbox Code Playgroud)

java ubuntu javafx java-10

2
推荐指数
1
解决办法
3175
查看次数

从 Java 10.0 NullPointer 开始,同时搜索持久性 - JPA eclipselink 2.6.5

我使用 eclipselink 2.6.5 的一些 EJB 实体作为 Rest 服务(TomEE 服务器中的 Jersy)。

\n\n

使用jdk-1.8它工作得很好,但是使用新的jdk-10.0现在我在搜索持久性时遇到了NullPointerException。

\n\n

我的 JPA 环境是否存在错误或不匹配?

\n\n

谢谢

\n\n

史蒂芬

\n\n
Exception in thread "main" Local Exception Stack: \nException [EclipseLink-30005] (Eclipse Persistence Services - 2.6.5.v20170607-b3d05bd): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException\n    Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: jdk.internal.loader.ClassLoaders$AppClassLoader@41906a77\n    Internal Exception: java.lang.NullPointerException\n        at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:127)\n        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:115)\n        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:188)\n        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)\n        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)\n        at de.company.test.simulation.session.MySimulationService.<init>(MySimulationService.java:50)\n        at de.company.test.simulation.controller.MyController.<init>(MyController.java:81)\n        at de.company.test.simulation.MySimulationLauncher.main(MySimulationLauncher.java:156)\n    Caused by: java.lang.NullPointerException\n        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2030)\n        at org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:100)\n        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:104)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的坚持.xml …

persistence jpa eclipselink java-10

2
推荐指数
1
解决办法
2052
查看次数

类型 org.openqa.selenium.chrome.ChromeDriver 不可访问

对于我在 Selenium 中使用的几乎所有类,我都收到类似“类型 org.openqa.selenium.chrome.ChromeDriver 不可访问”的错误消息。

在我使用 Java 8 之前它运行良好,但是当我升级到 Java 10 时,我收到了这样的错误。

请看下面的项目截图:

在此处输入图片说明

编辑1:

Selenium-server jar 文件也包含所有的 webdriver 代码。见下图。它在我在上面的类中导入的同一个包中有 ChromeDriver 类。如果我使用的是 Java 8(再次参见下面的屏幕截图)或旧版本的 Eclipse,则相同的组合工作正常。 在此处输入图片说明

在此处输入图片说明

eclipse selenium selenium-webdriver java-10

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

使用本地类型推断的程序是否适用于较低的Java版本?

Java 10引入了本地类型推理,这非常酷:

var list = new ArrayList<String>(); // Compiles fine
Run Code Online (Sandbox Code Playgroud)

但是,似乎人们不愿意在新版本发布的那一天(周,月,年)更新他们的Java版本.

这意味着我需要等到Java 8的EOL才可以使用,List.of(1, 2, 3)如果想要支持使用旧Java版本的大多数用户.

另一方面,当编译为字节码时,可能会推断出本地类型推断,因此可能使用它的程序可能会在较旧的Java版本(9或8)上运行.另一方面,Java似乎喜欢在运行时进行优化,这可能意味着类型推断需要JRE版本10.

有人试过这个吗?使用类型推断的程序是否在较旧的Java版本上运行?

感谢您的意见.

java type-inference java-10

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

从源代码构建Elasticsearch,但它需要Java 10

我正在尝试从源代码构建Elasticsearch.我今天从GitHub回购克隆,我按照" 从源头构建 "中的说明进行操作.

运行./gradlew assemble会产生以下错误:

...
> Configure project :benchmarks
=======================================
Elasticsearch Build Hamster says Hello!
=======================================
  Gradle Version        : 4.7
  OS Info               : Linux 4.4.0-112-generic (amd64)
  JDK Version           : Oracle Corporation 1.8.0_161 [Java HotSpot(TM) 64-Bit Server VM 25.161-b12]
  JAVA_HOME             : /usr/lib/jvm/java-8-oracle
  Random Testing Seed   : 5554B47DBBCF3CFB
Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.

FAILURE: Build failed with an exception.

* Where:
Build file …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch java-8 java-10

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

JDK 10 中未重新调整 var 关键字

我已经成功安装了带有 JDK 10 的 netbeans(Apache 版本),但是var在我的项目中无法使用关键字,它一直说cannot find symbol. 任何帮助,将不胜感激。

java netbeans java-10

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

如何使用 JDK 10.0.2 和 Eclipse 导入 java.sql.*?

我对 Java 编程比较陌生,我现在正在上的课程向我介绍 MySQL。我使用的是 JDK 10.0.2,我的课程有 JDK 1.7 或 1.8 的说明。我刚刚下载了 MySQL 连接器文件,将其解压缩,并将“mysql-connector-java-8.0.12.jar”文件放在桌面上的临时文件夹中。我的老师希望我将所述文件复制到“JAVA_HOME\jre\lib\ext”。不过,我通过这里了解到,从 JDK 9 及更高版本开始,他们已经删除了扩展机制,我应该使用此连接器为每个项目创建一个单独的类路径。在此阶段,我尝试将 java.sql.* 导入到我的 eclipse 项目中,但收到“The import java.sql无法解析”错误。

如何在项目中使用 JDK 10.0.2 正确设置 .jar 文件及其类路径,以便导入 java.sql.* 并继续?

作为旁注,我对“Maven”了解不多,但我试图在不涉及“Maven”的情况下手动执行此操作。我再次使用 Eclipse 作为 IDE。

java mysql eclipse java-10

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