标签: java-10

本地类型推断与实例

我试图扫描JEP-286关于本地类型推断.我看到这只适用于局部变量 - 理解.所以这确实有效:

public class TestClass {
    public static void main(String [] args){
        var list = new ArrayList<>();
        list.add("1");
        System.out.println(list.get(0)); // 1
    }  
}
Run Code Online (Sandbox Code Playgroud)

我确实看到这另一方面没有编译:

public class TestClass {
    public var list = new ArrayList<>();
    public static void main(String [] args){

    }
}
Run Code Online (Sandbox Code Playgroud)

很明显它没有,因为JEP这样说.现在我的问题:

对于宣布为var失败的公共/受保护成员,至少是IMO,这是完全合理的.但是为什么它不能编译,即使它是private?我只能假设你仍然可以通过反射获得该变量(我不能得到这样的局部字段)......并且获得该变量需要一个演员,好吧,一个非常困惑的演员可能.

type-inference java-10

7
推荐指数
4
解决办法
280
查看次数

XXXSummaryStatistics java-10中的新构造函数

我看到,java-10增加了一个构造函数IntSummaryStatistics(LongSummaryStatisticsDoubleSummaryStatistics)这4个参数是count,min,maxsum.

我理解为什么no-args构造函数存在,所以它将用于简化,如:

 ..stream().collect(Collectors.summarizingInt(Class::someFunction))
Run Code Online (Sandbox Code Playgroud)

这是有道理的,但为什么需要添加带有4个参数的构造函数?(我在自己的答案中做了一个假设,但如果不是这样的话,我很乐意收回它.)

java java-stream java-10

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

IntelliJ IDEA没有Java 10'var'的代码完成?

最近我安装了IntelliJ IDEA的新版本(2018.1),它增加了对Java 10的支持.

但是当我尝试使用var(用于局部变量类型推断)时,我发现var代码完成列表中没有.(见下面的截图)

如果我继续输入,它将VarHandle作为该列表中的第一个建议.然后我必须撤消完成以恢复var.

我检查了项目设置,我使用JDK 10,语言级别也设置为10.代码var number = 1;编译得很好.我在IDE设置中找不到任何相关内容.

我究竟做错了什么?我只是想var不间断地使用声明.

代码完成

java intellij-idea code-completion java-10

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

如何在Eclipse插件中使用Java11(Java10)?

如果我在我的Eclipse插件中将JavaSE-10指定为最小执行环境:

在此输入图像描述

在Eclipse应用程序启动插件时出现以下错误:

在此输入图像描述

org.osgi.framework.BundleException: Could not resolve module: org.treez.core [597]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=10))"
  Unresolved requirement: Require-Bundle: org.treez.javafxd3; visibility:="reexport"
    -> Bundle-SymbolicName: org.treez.javafxd3; bundle-version="1.0.0.qualifier"; singleton:="true"
       org.treez.javafxd3 [586]
         Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=10))"

    at org.eclipse.osgi.container.Module.start(Module.java:444)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1613)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Run Code Online (Sandbox Code Playgroud)

我查了一下

  • Java10在已安装的JRE下受到尊重
  • 选择10作为合规级别

我使用Oxygen.3a Release(4.7.3a)Build id:20180405-1200

=>这是eclipse equinox中的一个错误吗?

=>我还可以检查以解决此问题?

在此输入图像描述

如果我从最小执行环境设置中删除JavaSE-10,我就可以启动Eclipse应用程序,并且该插件似乎工作正常.

当我导出插件时,我收到以下警告:

# 25.04.18, 12:25:40 MESZ
# Eclipse Compiler for Java(TM) v20180330-0919, 3.13.102, Copyright IBM Corp 2000, 2015. All rights reserved.
option -bootclasspath not …
Run Code Online (Sandbox Code Playgroud)

eclipse eclipse-plugin java-10

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

无法在macOs上启动Jenkins - Java 10

我正在尝试使用以下方式启动Jenkins:

java -jar jenkins.war
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

java.lang.UnsupportedClassVersionError: 54.0
at Main.main(Main.java:128)
Run Code Online (Sandbox Code Playgroud)

在更新我的开发环境之后出现此问题,我切换到:

  • Java 10.0.1 + 10
  • 詹金斯2.107.2
  • MacOS 10.13.4

java macos jenkins java-10

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

在Gradle中启用HTML5 Javadoc

我们已将Java项目升级到JDK 10.运行构建脚本时,Javadoc会输出警告:

javadoc: warning - You have not specified the version of HTML to use.
The default is currently HTML 4.01, but this will change to HTML5
in a future release. To suppress this warning, please specify the
version of HTML used in your documentation comments and to be
generated by this doclet, using the -html4 or -html5 options.
Run Code Online (Sandbox Code Playgroud)

为了构建项目,我们使用gradle.我们如何-html5在gradle中指定HTML 5()?

到目前为止,我们文件的javadoc部分build.gradle相当简单:

javadoc {
    include 'com/company/project/pkg/*'
}
Run Code Online (Sandbox Code Playgroud)

java javadoc gradle java-10

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

Java写入Windows Server 2016时,文件上次修改时未更新

我在Windows Server 2016上有一个Java 10应用程序,它使用java.util.logging不断写入文件.在Windows文件资源管理器中,"上次修改"和"大小"列不会更新.按[F5]不会更新详细信息.DOS DIR给出了同样错误的答案.右键单击>属性>详细信息提供了一个甚至不同(和更旧)的答案.

TYPE在文件的记事本中运行DOS 或打开/关闭(不保存),似乎导致文件资源管理器和DOS DIR更新.

我假设Java代码是正确的,flush()因为Windows Server 2008上的Java 8上的相同类导致文件资源管理器更新.另外,当运行TYPE和记事本时,我也看到与系统时钟匹配的带时间戳的记录,但在"上次修改"之后.

所以我假设Windows Server 2016有一些东西.任何想法要检查什么?

java java.util.logging java-10 windows-server-2016

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

如何在Java http客户端中自定义"主机"头

这是我的代码:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://127.0.0.1:8081/"))
    .header("Host", "test.example.com")
    .build();
client.send(request, HttpResponse.BodyHandlers.ofString());
Run Code Online (Sandbox Code Playgroud)

结果我看到上面的代码发送:

GET / HTTP/1.1
Connection: Upgrade, HTTP2-Settings
Content-Length: 0
Host: 127.0.0.1:8081
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Upgrade: h2c
User-Agent: Java-http-client/10
Host: test.example.com
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它会发送两个Host标头(URI和我指定的Host标头),但我希望它发送我指定的标头,而不是URI中的标头.这个客户有可能吗?

编辑:在Java 11中,它变得更糟(你需要将client.send行改为:)client.send(request, HttpResponse.BodyHandlers.ofString());:

java.lang.IllegalArgumentException: restricted header name: "Host"
Run Code Online (Sandbox Code Playgroud)

如何自定义该标头(测试虚拟主机所需)?

我也试过setHeader并得到完全相同的问题(双头Host或异常).

编辑:我报告了一个JDK错误.

java http2 java-10 java-http-client java-11

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

Install4j J​​ava最低版本似乎不起作用

我们正在使用Install4j 7.0.6,并将Java最低版本设置为“ 10.0.1”。我们将Java 10.0.1捆绑到媒体文件中。当我们用Java 9 VM替换随附的JVM时,我们的应用程序仍然启动。我们只是误解了Java最低版本的功能还是使用了错误的版本格式,还是在Install4j 7.0.6中损坏了?

java install4j java-10

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

Java 10 JavaFX java.lang.IllegalAccessError

我正在尝试将我的 JavaFX Gradle 项目更新到 Java 10。我已经像本指南中一样更改了我的 build.gradle 文件。但是当我尝试运行项目(执行./gradle run)时,我收到此错误:

> Task :run FAILED
Exception in Application start method
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
        at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x5ce4f9a4) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics …
Run Code Online (Sandbox Code Playgroud)

java module javafx gradle java-10

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