小编Sve*_*rev的帖子

项目facet java的1.8版本不存在

我正在尝试Dynamic Web Application使用Java 8(以及Wildfly appServer,如果这很重要)构建一个eclipse,但是我无法让Eclipse Luna M5使用Java 8(我确实安装了Java 8 BETA支持,它适用于JavaSE项目).

在我的POM中,我将级别设置为Java 8:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但在我这样做后,maven -> update project我收到以下错误:

Could not update project ExampleApp configuration
Version 1.8 of project facet java does not exist.
Run Code Online (Sandbox Code Playgroud)

事实上,没有java 1.8项目方面 project->preferences->project facets->java

我可以手动创建这样的facet并将它添加到eclipse或者我将不得不等到java 8发布并且eclipse的人决定添加它吗?

java eclipse m2eclipse maven java-8

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

欺骗JVM关于可用内核的数量(在linux上)

在某些目的中,需要JVM考虑它在具有N核心的机器上运行而不是真实数量的核心(例如4核心而不是核心16).

JVM 在一些基于Mandriva/Red Hat Linux核心的Linux版本下运行.

这个问题是边缘情况,因为我期待这个问题的各种解决方案.这不是纯粹的linux管理问题,也不是纯粹程序员的问题.

所以...任何想法?

linux jvm cpu-cores

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

关闭JAX-RS StreamingOutput的OutputStream

StreamingOutputOutputStream由实现类被关闭?

java-doc没有给出任何建议.我想它只是代表底层ServletOutputStream,这意味着它不应该被关闭,但我的猜测可能是错误的:)此外,javadoc引用了一个MessageBodyWriter接口,它明确表示输出流不能被关闭.

https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/StreamingOutput.html

java cxf jax-rs jersey java-ee

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

日志锻造强化修复

我正在使用Fortify SCA来查找我的应用程序中的安全问题(作为大学作业).我遇到了一些我无法摆脱的"Log Forging"问题.

基本上,我记录了一些来自Web界面的用户输入值:

logger.warn("current id not valid - " + bean.getRecordId()));
Run Code Online (Sandbox Code Playgroud)

并且Fortify将此报告为日志伪造问题,因为getRecordId()返回用户输入.

我已经关注了这篇文章,我正在用空格替换"新行",但问题依然存在

logger.warn("current id not valid - " + Util.replaceNewLine(bean.getRecordId()));
Run Code Online (Sandbox Code Playgroud)

任何人都可以提出解决此问题的方法吗?

java security logging fortify log-forging

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

为什么过滤未排序的列表比过滤排序列表更快

我一直在玩Java 8 Streams - API,我决定使用microbenchmark stream()parallelStream()stream.正如预期的parallelStream()那样,速度提高了两倍,但是其他东西弹出 - 如果我在将数据传递给filter它之前对数据进行排序,结果需要花费5-8倍的时间,filter->map->collect而不是传递未排序的列表.

未分类

(Stream) Elapsed time [ns] : 53733996 (53 ms)
(ParallelStream) Elapsed time [ns] : 25901907 (25 ms)
Run Code Online (Sandbox Code Playgroud)

排序

(Stream) Elapsed time [ns] : 336976149 (336 ms)
(ParallelStream) Elapsed time [ns] : 204781387 (204 ms)
Run Code Online (Sandbox Code Playgroud)

这是代码

package com.github.svetlinzarev.playground.javalang.lambda;

import static java.lang.Long.valueOf;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;

import com.github.svetlinzarev.playground.util.time.Stopwatch;

public class MyFirstLambda {
    private static final int ELEMENTS = 1024 * …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

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

为什么Eclipse要求在枚举中声明strictfp

我在Java中尝试使用枚举类型.当我写下面的课时,

public class EnumExample {
  public enum Day {
    private String mood;
    MONDAY, TUESDAY, WEDNESDAY;
    Day(String mood) {

    }
    Day() {

    }
  }
 }
Run Code Online (Sandbox Code Playgroud)

编译说:Syntax error on token String, strictfp expected.
我知道strictfp它会是什么,但它会来到这里吗?

java eclipse enums strictfp

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

Java 如何避免在循环中使用 Thread.sleep()

从我的主要开始,我开始了两个名为生产者和消费者的线程。两者都包含while(true)循环。生产者循环是 UDP 服务器,因此它不需要睡眠。我的问题出在消费者循环中。消费者循环从链接队​​列中删除对象并将其传递给函数以进行进一步处理。根据研究,在循环中使用线程睡眠不是一个好习惯,因为有时 O/S 不会在设置时间结束时释放。如果我在应用程序理想时删除线程睡眠,它会将 CPU 拖到 20% 到 30%。

class Producer implements Runnable {
    private DatagramSocket dsocket;
    FError fer = new FError();

    int port =1548;
    ConcurrentLinkedQueue<String> queue;

    Producer(ConcurrentLinkedQueue<String> queue){
        this.queue = queue; 
    }

    @Override
    public void run() {

        try {

            // Create a socket to listen on the port.
            dsocket = new DatagramSocket(port);
            // Create a buffer to read datagrams into.
            byte[] buffer = new byte[30000];
            // Create a packet to receive data into the buffer
            DatagramPacket …
Run Code Online (Sandbox Code Playgroud)

java producer-consumer

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

如何在 Rust 中指定值约束?

我正在寻找一种将类型约束转移到某种包装器中的方法。例如,在 Ada 中您可能会看到如下内容:

type Element is Integer range 100 .. 1000;
Run Code Online (Sandbox Code Playgroud)

它定义了一种新类型Element,尽管它仍然是整数,但它绑定到特定范围。还有mod一个会循环回来(超级有用)。

在 Rust 中,到目前为止,我一直在我的所有函数中手动检查这一点,即:

if x < 100 || x >= 1000 {
    // throw some kind of error
}
Run Code Online (Sandbox Code Playgroud)

但最好定义一个类型,在赋值时为我执行此检查,类似于默认情况下整数不能溢出的方式。我知道我们没有继承,但也许我可以实现某种特征

TL;DR:我确信我的方法不是最佳实践,但是标准的替代方法是什么?

types constraints rust

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

无法解决Log Forging Fortify问题

我在解决 Fortify 中的日志伪造问题时遇到问题。“将未经验证的用户输入写入日志”问题是从 getLongFromTimestamp() 方法中的两个日志调用中引发的。

public long getLongFromTimestamp(final String value) {
    LOGGER.info("getLongFromTimestamp(" + cleanLogString(value) + ")");

    long longVal = 0;
    Date tempDate = null;
    try {            
        tempDate = new SimpleDateFormat(FORMAT_YYYYMMDDHHMMSS, Locale.US).parse(value);
    } catch (ParseException e) {
        LOGGER.warn("Failed to convert to Date: " + cleanLogString(value) + " Exception: " + cleanLogString(e.getMessage()));
        throw new Exception(e);
    }

    if (tempDate != null) {
        longVal = tempDate.getTime();
    }
    return longVal;
}

private cleanLogString(String logString) {
    String clean = logString.replaceAll("[^A-Za-z0-9]", "");

    if(!logString.equals(clean)) {
        clean += " …
Run Code Online (Sandbox Code Playgroud)

java fortify log-forging

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

如何使用表格格式打印 RealMatrix

我在我的项目中使用 apache-commons-math RealMatrix 来处理矩阵运算,但是我无法以正确的格式打印它。

到目前为止,对于我拥有的每个矩阵,它都是这样的:

double coord[][] = new double[3][3];
                    
        coord[0][0] = 1d;    
        coord[0][1] = 0d;    
        coord[0][2] = 0d;    

        coord[1][0] = 2d;    
        coord[1][1] = 1d;    
        coord[1][2] = 1d;    

        coord[2][0] = 3d;    
        coord[2][1] = 2d;    
        coord[2][2] = 0d;    
    
        
    System.out.println("coordinates  [nó, x, y]");
        for(int co = 0 ; co < 3 ; co++){
            for(int or = 0 ; or < 3 ; or++){
                System.out.printf("%10.5f\t",coord[co][or]);
            }
            System.out.print("\n");
        }
Run Code Online (Sandbox Code Playgroud)

输出:

    coordinates  [nó, x, y]
   1,00000     0,00000     0,00000  
   2,00000     1,00000     1,00000  
   3,00000     2,00000     0,00000
Run Code Online (Sandbox Code Playgroud)

但是当我使用 …

java arrays matrix apache-commons-math

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