小编Rob*_*son的帖子

gradle 命令失败,因为它无法启动守护进程

我正在尝试运行 gradle 命令。这最初奏效了。然而,一段时间后它开始失败,因为它无法启动守护进程。我在 Windows 7 Enterprise 上使用 Gradle 2.5 和 IBM jdk 1.6。

我已经清理了用户主目录中的 .gradle 目录并重新启动了我的系统。

这在我朋友机器上的相同版本上运行良好。请帮忙。

org.gradle.api.GradleException:无法启动 Gradle 守护进程。
        在 org.gradle.launcher.daemon.client.DefaultDaemonStarter.startProcess(DefaultDaemonStarter.java:137)
        在 org.gradle.launcher.daemon.client.DefaultDaemonStarter.startDaemon(DefaultDaemonStarter.java:114)
        在 org.gradle.launcher.daemon.client.DefaultDaemonConnector.startDaemon(DefaultDaemonConnector.java:109)
        在 org.gradle.launcher.daemon.client.DefaultDaemonConnector.connect(DefaultDaemonConnector.java:87)
        在 org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:117)
        在 org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:77)
        在 org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
        在 org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
        在 org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:23
7)
        在 org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:21
0)
        在 org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
        在 org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
        在 org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
        在 org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
        在 org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
        在 org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
        在 org.gradle.launcher.Main.doAction(Main.java:33)
        在 org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
        在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        在 java.lang.reflect.Method.invoke(Method.java:611)
        在 org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
        在 org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
        在 org.gradle.launcher.GradleMain.main(GradleMain.java:23)
引起:org.gradle.api.UncheckedIOException:java.io.EOFException
        在 org.gradle.launcher.daemon.bootstrap.DaemonStartupCommunication.readDiagnostics(DaemonStartupCommunication.ja
va:100)
        在 org.gradle.launcher.daemon.bootstrap.DaemonGreeter.parseDaemonOutput(DaemonGreeter.java:40)
        在 …

java windows gradle

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

如果列表中某个项目出现多次,则删除该项目的所有实例

给定一个数字列表: { 4, 5, 7, 3, 5, 4, 2, 4 }

所需的输出是: { 7, 3, 2 }

我正在考虑的解决方案是从给定的列表中在 HashMap 下创建:

Map<Integer, Integer> numbersCountMap = new HashMap();
Run Code Online (Sandbox Code Playgroud)

其中键是列表中的值,值是出现次数。

然后循环遍历 HashMap 条目集,只要数字包含的计数大于 1,就从列表中删除该数字。

for (Map.Entry<Int, Int> numberCountEntry : numbersCountMap.entrySet()) {
     if(numberCountEntry.getValue() > 1) {  
        testList.remove(numberCountEntry.getKey());
     }
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是解决此问题的有效方法,因为remove(Integer)对列表的操作可能很昂贵。此外,我正在创建额外的 Map 数据结构。并循环两次,一次在原始列表上创建地图,然后在地图上删除重复项。

你能不能提出一个更好的方法。可能是 Java 8 有更好的实现方式。我们还可以在 Java 8 中使用 Streams 和其他新结构在几行中完成吗?

java collections data-structures java-8 java-stream

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

如何根据 Java 列表中的重复获取前 N 个值

我正在尝试根据 Java 列表中的重复来获取前 N 个值。

示例:查找前 2 个值
[“草莓”、“橙子”、“苹果”、“芒果”、“葡萄”、“菠萝”、“芒果”、“草莓”、“芒果”、“苹果”]

结果:
["mango"] //mango 重复了 3 次
["strawberries", "apple"] // "strawberries", "apple" 各重复了 2 次

我写了下面的代码来实现这一点

private static List<List<String>> getTop(int n, List<String> values) {

    Map<String, Long> valueCountMap = values.stream()
                           .collect(groupingBy(x -> x, counting()));

    final Map<String, Long> sortedByCount = valueCountMap.entrySet()
            .stream()
            .sorted(Map.Entry.<String, Long>comparingByValue().reversed())
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (x, y) -> y, LinkedHashMap::new));

    List<List<String>> topNValues = new ArrayList<>();
    long prevValue = -1;
    for (Map.Entry<String, Long> e : sortedByCount.entrySet()) {
        if (prevValue == -1 || prevValue …
Run Code Online (Sandbox Code Playgroud)

java sorting algorithm java-stream

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