为什么eclipse不会将编译器切换到Java 8?

我在eclipse中检查了一个来自SVN的Java项目,并意识到它需要Java 8,因为它使用了lambdas等。我为Java 8安装了eclipse插件并重新启动了eclipse,并且项目设置如下: 我注意到在底部附近,它表示默认的编译器合规性是1.7,所以我进入org.eclipse.jdt.core.prefs并将编译器合规性变量设置为1.8 ,根据这个答案 。 但是,在Project – > Preferences – > Java Compiler中,它仍显示为: 我在Project – > Java Build Path中设置了JRE: 然而编译器拒绝编译lambda表达式 – 我得到的错误看起来就像我继续将其输入到Java 7中所得到的错误。 这是我正在使用的eclipse版本 Version: Kepler Service Release 1 Build id: 20130919-0819 解决这个问题的唯一方法是安装新版本的Eclipse还是我在配置中遗漏了什么?

java.net.SocketException:无法识别的Windows套接字错误:0:JVM_Bind(JBOSS)

我在Windows 7上使用JBoss 4.0.5 GA和Java 1.5版(我必须使用旧的Java版本和JBoss,因为我正在使用遗留系统)。 当我启动服务器时,我收到以下错误: java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 我相信这会导致许多其他例外情况: 11:09:26,925 WARN [ServiceController] Problem starting servicejboss.cache:service=TomcatClustering Cache java.lang.NullPointerException at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:235) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.FD.down(FD.java:278) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.stack.Protocol.down(Protocol.java:540) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.pbcast.NAKACK.down(NAKACK.java:297) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.UNICAST.down(UNICAST.java:262) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:292) at […]

在JasperReport中创建/传递Java bean数据源

我在我的JSF应用程序中使用JasperReport和ireport来动态生成报告。 这就是我想要实现的目标: – 我的结构(读作HashMap / ArrayList)包含需要传递给报表的数据,以便在报表中显示相同的数据。 我的报告已经包含一个数据源连接,我使用该连接从DB获取一些值并在报告中填充它。 我正在创建一个子报表,以便对于需要从代码传递的数据,我可以使用子报表并将此子报表嵌入主报表中。 我的问题是: – 1.我无法将集合(读作HashMap / ArrayList)传递给子报告,用我的代码中的数据填充它。 我绝对相信必须有一些方法将整个集合传递到子报表以填充它,我也尝试创建JavaBean数据源连接,但是在创建连接时它会显示Missing classpath条目。 我不能将相应的类捆绑在jar中并将jar放在classpath中,因为值在结构中不断变化,…. 任何人都可以指导我如何创建/传递java bean数据源到报告,以便可以填充数据… 请指导…… 更新部分: – 用于将参数传递到报告和生成报告的Java代码: – public class TestDataSource { public static void main(String[] args) { try { JasperDesign jasperDesign = JRXmlLoader.load(“D:\\jasperReports\\subReportDataSource.jrxml”); JasperReport jasperReport =(JasperReport)JasperCompileManager.compileReport(jasperDesign); Map parameters = new HashMap(); parameters.put (“Title”,generateCollection()); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new […]

为什么Spring数据存储库上的getOne(…)不会抛出EntityNotFoundException?

我正在处理一个奇怪的问题,我正在进行集成测试,调用我的控制器从数据库中获取一个不存在的对象。 public Optional get(Long id) { try { return Optional.ofNullable(repository.getOne(id)); } catch(EntityNotFoundException e) { return Optional.empty(); } } 当getOne(…)无法找到任何东西时,我期待一个EntityNotFoundException但实际上什么都没有。 如果我检查我的结果,我可以看到我有一个带有处理程序链接的空实体“抛出EntityNotFoundException ”但是我们不进入catch并返回这个奇怪实体的可选项。 我无法理解这种行为。

RowSet,CachedRowSet等的实现

直到今天,我在处理查询结果时正在使用ResultSet 。 但今天我读了一些关于RowSet和CachedRowset ,我意识到它们可以更好地满足我的目的。 虽然在所有的例子中我都读到了RowSet和CachedRowSet被称为对象的地方,当我在我的代码中自己尝试它时,我意识到这些是接口,在示例中它们使用了这些接口的一些实现。 现在我的问题是我在哪里找到这些实现,是否有正式的东西? 我需要下载它们还是它们带有JDK?

如何找出renameTo()失败的原因?

我正在使用WinXP。 我用java生成一个文件列表。 该文件最初将创建为abc.txt.temp,在完成生成后,它将重命名为abc.txt。 但是,当我生成文件时,某些文件无法重命名。 它是随机发生的。 无论如何都要找出失败的原因吗? int maxRetries = 60; logger.debug(“retry”); while (maxRetries– > 0) { if (isSuccess = file.renameTo(file2)) { break; } try { logger.debug(“retry ” + maxRetries); Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //file.renameTo(file2); Thread.currentThread().getThreadGroup().getParent().list(); 结果如下: [DEBUG][2009-08-25 08:57:52,386] – retry 1 [DEBUG][2009-08-25 08:57:53,386] – retry […]

如何在TreeSet中找到元素的索引?

我正在使用TreeSet ,我非常想在集合中找到数字的索引。 有没有一种很好的方法来实际利用二叉树的O(log(n))复杂度? (如果不是,我该怎么做,有谁知道为什么不呢?我很好奇为什么这样的类会被包含在Java中,而不会像搜索函数那样。)

线程中的静态同步和非静态同步方法

任何人都可以解释声明……“静态同步方法和非静态同步方法不会相互阻塞 – 它们可以同时运行”

JSF和自动重载xhtml文件

我使用JRebel,Spring,JSF Mojarra 2.0.3和WebLogic 10.3热重新加载XHTML文件时遇到了一些问题。 JRebel成功地在/ WebContent下重新加载常规Java类和js / css文件,而不是JSF的.xhtml文件。 需要完整的重新发布才能在服务器上更新xhtml文件。 通过反复试验,我终于通过向web.xml添加一些facelets参数并创建自定义ResourceResolver来实现它,如本博客文章中所述 。 但是,我想知道为什么这有效,更具体地说: 为什么需要自定义ResourceResolver? 是不是JRebel应该通过监视xhtml文件所在的/ WebContent来处理这个问题? 我猜它与Facelets / JSF通过FacesServlet编译xhtml到servlets(?)有什么关系,JRebel无法检测到它?

实现Runnable与扩展线程

为什么实现Runnable比从Thread类扩展更好?