当我在Eclipse中运行我的Java代码时,我收到以下消息:
There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (malloc) failed to allocate 4088 bytes for AllocateHeap
An error report file with more information is saved as:
E:\Eclipse_Workspace\BTest\hs_err_pid1888.log
Run Code Online (Sandbox Code Playgroud)
我的电脑里有4GB内存.我也将我的JRE从1.7改为1.8.但这个问题似乎没有得到解决.我使用带有i3处理器的Win 8系统,在我的C盘中有大约20GB的可用磁盘空间.
Eclipse版本:Eclipse Juno Service版本2
我在启动Eclipse时也收到此消息.我已附上错误消息屏幕截图.
是什么导致了这个问题?

"eclipse.ini"文件中的内存参数:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m
Run Code Online (Sandbox Code Playgroud)
解决方法: 重新安装eclipse修复了这个问题.
如何以JList水平方式加载?这是我的代码,我试图显示JList类似于提供的屏幕截图.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.awt.BorderLayout;
import java.io.File;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
public class Test extends JFrame{
private JList toolsList;
private ArrayList<File> toolXmlList;
public Test()
{
toolXmlList = new ArrayList<File>();
toolXmlList = loadFiles();
setVisible(true);
setSize(300,300);
setTitle("Test Jlist");
createComponents();
}
public void createComponents()
{
toolsList = new JList();
toolsList.setModel(displayDefaltTools());
toolsList.setLayoutOrientation(javax.swing.JList.VERTICAL_WRAP);
setLayout(new BorderLayout());
add(toolsList,BorderLayout.CENTER);
}
/** …Run Code Online (Sandbox Code Playgroud) 我正在使用没有空格的文本索引大文本文件.目前我有ngram方法生成长度为12的字符串然后我索引它们.同样的搜索方式,我从用户获取字符串生成12的ngrams,然后用它来构建查询.在搜索时,请阅读lucene中存在的ngram tokenizer.但无论如何都找不到任何例子.
如何在lucene 4.0中实现ngram tokenizer?
我知道这个名字有很多主题.我有一个生成ngrams的代码.但是想知道在处理数千个字符串时能否提高速度?
示例String ="abcdefghijkl1245ty789"
public static String[] ngrams(String s) {
int len=12;
String[] parts = s.split("(?!^)");
String[] result = new String[parts.length - len + 1];
for(int i = 0; i < parts.length - len + 1; i++) {
StringBuilder sb = new StringBuilder();
for(int k = 0; k < len; k++) {
sb.append(parts[i+k]);
}
result[i] = sb.toString();
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码获取一个字符串,生成给定长度的ngrmas.在我的情况下它12.
我有一个Custom对象列表,它将与同一列表中的其余对象进行比较.
我目前的方法:目前我使用foreach循环从列表中获取一个元素,运行另一个foreach循环来查看列表中与被摄对象类似的元素.
case class TestOb(name:String,pos:Vector[Int])
val lis:List[TestOb] = null
lis.foreach{i=>
val ref = i._2
lis.foreach{j=>
val current = j._2
//compare ref and current.
}
}
Run Code Online (Sandbox Code Playgroud)
有没有其他有效的方法在Scala中在同一列表中进行此迭代而没有两个foreach循环?
我有一个Scala的对象列表,需要根据两个条件进行排序.我已经尝试使用sortBy方法对元素列表进行排序,提到两个feidls,但排序顺序并不像我预期的那样.
TestObject(name:String,size:Int,length:Double)
val tesList = Vector[TestObject]()
Run Code Online (Sandbox Code Playgroud)
我想根据以下内容对列表进行排序 -
bigger SIZE & bigger LENGTH
Run Code Online (Sandbox Code Playgroud)
我试过了-
tesList.sortBy(p=>(p.size,p.length))
Run Code Online (Sandbox Code Playgroud)
我想对列表中具有最大长度和最大尺寸的元素进行排序.
问题:我正在尝试使用基于用户操作的新绘制对象更新画布.画布剂量得到更新.
我做了什么:用户与DnD动作交互,可转移对象到达画布,调用由我创建的更新图形方法.并且该方法只需使用aldready创建的图形2D对象,并使用它.我已经checkd免打扰作用将图像,对象正确recived在Canvas类,我能打印出来使用System.out.println.
示例代码,具有与我的类似的功能,
油漆类:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class PaintPanel extends JPanel{
private Graphics2D drawImage;
public PaintPanel()
{
}
@Override
public void paint(Graphics g) {
drawImage = (Graphics2D) g;
drawImage.setColor(Color.WHITE);
drawImage.fillRect(0, 0, getWidth(), getHeight());
}
public void updateGraphics(int length,int width)
{
drawImage.setColor(Color.black);
drawImage.drawRect(100, 150, length, width);
repaint();
}
}
Run Code Online (Sandbox Code Playgroud)
大型机类:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MainPaint extends JFrame{
public MainPaint()
{
setTitle("test paint");
setSize(400,400);
setLayout(new BorderLayout());
final PaintPanel …Run Code Online (Sandbox Code Playgroud)