JVM不断崩溃.我无法弄清问题是什么.我测试了最新的1.6 jdk以及1.7.一样的问题.
我已经运行了内存检查,并且没有报告错误.我也试过jrockit,那里发生了同样的事情.java代码是一个索引过程,它将文档添加到Lucene索引中.将某些文档添加到索引并提交后,就会发生这种情况.
JVM与以下选项一样启动:
-XX:+UseConcMarkSweepGC -server -d64 -XX:MaxPermSize=1g -Xms4g -Xmx12g
Run Code Online (Sandbox Code Playgroud)
垃圾收集日志的输出(注意最后一行,好像jvm无法执行完整的gc):http://pastebin.com/9EskW4QY
崩溃报告如下所示:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f0db0736950, pid=11730, tid=139682413950736
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode linux-amd64 )
# Problematic frame:
# V [libjvm.so+0x548950]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R …Run Code Online (Sandbox Code Playgroud) 我尝试使用1,2,3,4 GB的内存启动该过程但仍然得到相同的错误.有小费吗?gc日志显示它运行GC,即使它有足够的内存.但是这个错误可能与使用NIO的内存映射文件有关.以前有人见过这样的事吗?如果是这样,你是如何解决的?
$ java -d64 -server -Xmx15g -Xms15g -XX:+UseConcMarkSweepGC -verbose:gc -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/frank/heap.dmp -jar lukeall-3.5.0.jar
[Full GC 207648K->28758K(15660544K), 0.1105290 secs]
[Full GC 61479K->15416K(15660544K), 0.0654310 secs]
[Full GC 69950K->15418K(15660544K), 0.0717170 secs]
[Full GC 69952K->15418K(15660544K), 0.0661720 secs]
java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:849)
at org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:265)
at org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:216)
at org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:89)
at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:115)
at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:93)
at org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:113)
at org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:83)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:754)
at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:462)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:377)
at org.getopt.luke.Luke.openIndex(Unknown Source)
at org.getopt.luke.Luke.openOk(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at thinlet.Thinlet.invokeImpl(Unknown Source)
at thinlet.Thinlet.invoke(Unknown Source)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
Caused …Run Code Online (Sandbox Code Playgroud) 是否可以TextField使用CSS在JavaFX中定义s的填充和边距?我尝试了-fx-padding一些其他属性,但没有效果.我正在使用JavaFX 2.2,它包含在最新版本的Java 7中.
我有很多文本字段,并做了类似的事情:
<GridPane.margin>
<Insets bottom="10.0" left="60.0" right="0.0" top="10.0"/>
</GridPane.margin>
Run Code Online (Sandbox Code Playgroud)
在每个文本字段之后对我来说不是一个好的解决方案.
是否JavaFX包含与JDK 8兼容的最新版本Java 7?Oracle 在这里说,最新版本包含在JDK中,但是我想知道它是否包含在JDK的最新更新中,JDK 7以及它是否与JDK 8?
我想制作一个垂直排列的垂直工具栏.使用JavaFX 2.2它包含JDK 7在Linux Mint中.
屏幕截图显示了问题:

在FXML我使用看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<?language javascript?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane prefHeight="800.0" prefWidth="700.0" styleClass="root" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<top>
<ToolBar>
<items>
<Button text="Test" />
</items>
</ToolBar>
</top>
<left>
<ToolBar orientation="VERTICAL" style="-fx-background-color: blue;">
<items>
<Region style="-fx-padding:10;" />
<Button rotate="-90" text="Project" style="-fx-label-padding:1;"/>
<Region style="-fx-padding:10;" />
<Button rotate="-90" text="Structure" />
</items>
</ToolBar>
</left>
<center>
<HBox>
<children>
</children>
</HBox>
</center>
<bottom>
<ToolBar prefHeight="18.0" prefWidth="472.0">
<items>
<Region styleClass="spacer" />
<HBox>
<children>
</children>
</HBox>
</items>
</ToolBar>
</bottom> …Run Code Online (Sandbox Code Playgroud) 给定一个用expressJS渲染的EJS模板,我有一个变量itemId.如何在MyCtrl控制器中使用它?
<script>x="<%=itemId%>"</script>
<div ng-controller="MyCtrl">
</div>
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试过
<script>$scope.x=<%=itemId%></script>
Run Code Online (Sandbox Code Playgroud)
然后在控制器中,尝试获取它$scope.x但它不起作用.
我试图了解bitwise exclusive orjava中的工作原理.例如:
false ^ false = false
true ^ true = false
true ^ false = true
false ^ true = true
Run Code Online (Sandbox Code Playgroud)
根据SO的一些帖子boolean,java中的大小依赖于jvm.通常boolean可以在阵列中32 bits的堆栈上表示8 bits.
那么,bitwise如果它在堆栈上超过一个字节,为什么会被调用?
我想在以下代码中生成类实例化:
旧代码:
public abstract class Test{
public static Test instantiate(Class clazz)throws Exception{ //instance of clazz extends Test
return (Test)clazz.newInstance();
}
}
Run Code Online (Sandbox Code Playgroud)
因为任何参数实例clazz都是扩展类Test,我想实现这样的事情:
public static T <T extends Test> instantiate(Class<? extends Test> clazz){
return clazz.newInstance();
}
Run Code Online (Sandbox Code Playgroud)
它给出了以下编译错误:
Unspecified Bound
Run Code Online (Sandbox Code Playgroud)
如何使用java泛型?
我有以下字符串:
String x = "020120765";
Run Code Online (Sandbox Code Playgroud)
我希望这个字符串的形式02 0120765.一种可能性是:
x = x.substring(0,2) + " " + x.substring(2, x.length());
Run Code Online (Sandbox Code Playgroud)
要么:
x = String.format("%s %s", x.substring(0, 2), x.substring(2));
Run Code Online (Sandbox Code Playgroud)
还有其他更好或更优雅的方式吗?我正在考虑正则表达式的方向.我尝试过以下方法:
x = String.format("%s %s", x.split("\\d{2}"));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我有一个像这样的字符串:
123456-1/1234/189928/2323 (102457921)
Run Code Online (Sandbox Code Playgroud)
我想得到102457921.如何使用正则表达式实现它?
我试过了:
"123456-1/1234/189928/2323 (102457921)".replaceAll("(\\.*\()(\d+)(\))","$2");
Run Code Online (Sandbox Code Playgroud)
但它不起作用.任何提示?