小编Joe*_*oel的帖子

Java内存错误:无法创建新的本机线程

运行我的java服务器时,我的UNIX服务器上出现此错误:

Exception in thread "Thread-0" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)
at [... where ever I launch a new Thread ...]
Run Code Online (Sandbox Code Playgroud)

每次我运行大约600个线程时都会发生这种情况.

我在服务器上设置了这个变量:

$> ulimit -s 128
Run Code Online (Sandbox Code Playgroud)

我觉得奇怪的是这个命令的结果,我在上次发生错误时运行了这个命令:

$> free -m
              total       used       free     shared    buffers     cached
Mem:          2048        338       1709          0          0          0
-/+ buffers/cache:        338       1709
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

我像这样启动我的java服务器:

$> /usr/bin/java -server -Xss128k -Xmx500m -jar /path/to/myJar.jar
Run Code Online (Sandbox Code Playgroud)

我的debian版本:

$> cat /etc/debian_version
5.0.8
Run Code Online (Sandbox Code Playgroud)

我的java版本:

$> java -version
java version "1.6.0_26"
Java(TM) SE …
Run Code Online (Sandbox Code Playgroud)

java linux memory debian multithreading

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

在haskell中读取大文件?

我一直在尝试读取haskell中的大文件.

我需要使用自定义算法为大学项目压缩它.一切正常,直到我开始压缩大文件.

我从我的程序中提取出错了,我在这里以"Hello大文件"的形式公开它:

import System
import qualified Data.ByteString.Lazy as BL
import Data.Word

fold_tailrec :: (a -> b -> a) -> a -> [b] -> a
fold_tailrec _ acc [] =
    acc
fold_tailrec foldFun acc (x : xs) =
    fold_tailrec foldFun (foldFun acc x) xs

fold_tailrec' :: (a -> b -> a) -> a -> [b] -> a
fold_tailrec' _ acc [] =
    acc
fold_tailrec' foldFun acc (x : xs) =
    let forceEval = fold_tailrec' foldFun (foldFun acc x) xs in …
Run Code Online (Sandbox Code Playgroud)

io haskell lazy-evaluation bytestring

18
推荐指数
1
解决办法
2122
查看次数

动态创建活动

我想动态创建一个活动.就像是:

Activity a = new Activity();
Run Code Online (Sandbox Code Playgroud)

可能吗 ?我需要特别许可吗?或者它根本不可能?

我得到的错误:我没有得到任何异常,但程序在我尝试使用此指令时停止.

android android-activity

17
推荐指数
2
解决办法
8539
查看次数

Android TabHost.addTab - >空指针异常

这是我的代码:

    public class Main extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            TabHost tabHost = new TabHost(this);

            TabHost.TabSpec tab = tabHost.newTabSpec("tab1");
            tab.setIndicator("Tab 1");
            tab.setContent(new TabHost.TabContentFactory() {
                @Override
                public View createTabContent(String tag) {
                    TextView tv = new TextView(Main.this);
                    tv.setText("tab 1 content");
                    return tv;
                }
            });

            tabHost.addTab(tab);

            setContentView(tabHost);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

    [...]
    07-13 20:26:49.261: ERROR/AndroidRuntime(625): Caused by: java.lang.NullPointerException
    07-13 20:26:49.261: ERROR/AndroidRuntime(625):     at android.widget.TabHost.addTab(TabHost.java:206)
    07-13 20:26:49.261: ERROR/AndroidRuntime(625):     at test.test.Main.onCreate(Main.java:27)
    [...]
Run Code Online (Sandbox Code Playgroud)

我需要通过代码执行此操作,我不能使用XML.任何人都可以帮我解决这个问题吗?

android nullpointerexception android-tabhost

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

Android的EditText问题:KeyListener

在一个EditText组件上,我试图设置一个KeyListener以便捕获ENTER键(用于表单验证).

    text.setKeyListener(new KeyListener() {

        @Override
        public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
            return false;
        }

        @Override
        public boolean onKeyOther(View view, Editable text, KeyEvent event) {
            return false;
        }

        @Override
        public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
                onKeyEnterPressedListener.onKeyEnterPressed(AKText.this);
                return true;
            } else {
                return false;
            }
        }

        @Override
        public int getInputType() {
            return 1;
        }

        @Override
        public void clearMetaKeyState(View view, Editable content, int states) …
Run Code Online (Sandbox Code Playgroud)

android keylistener android-edittext

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

Java中首选项的替代方案

我正在使用Java Preferences API在swing/java应用程序中存储和检索小块信息.

现在我已经设置Java Web start从我的网页启动应用程序,我得到一个安全例外.为了摆脱这个异常,我必须提示用户权限.我拒绝这样做,因为我的应用程序不会做任何需要用户许可的事情.

这就是为什么我需要一个替代解决方案来存储从一个执行到另一个执行的几个键值.某种饼干或其他什么.你知道吗?

java preferences java-web-start

10
推荐指数
1
解决办法
2633
查看次数

国际象棋中合法移动生成的java库

我正在寻找一个API来在国际象棋中生成合法的移动验证,最好是用Java语言.

我可以自己写,但这将是一个天真的实现,它会很慢.所以我需要一个工作库,允许或多或少的以下操作:

Board board = new Board();
board.reset();
board.isMoveLegal(playerNum, fromSquare, toSquare);
board.inputMove(playerNum, fromSquare, toSquare);
Run Code Online (Sandbox Code Playgroud)

我想要避免的是必须使用GUI,互联网连接或其他功能浏览完整的国际象棋游戏的代码源,而不是移动生成.对我来说这将是一个很大的浪费时间,我宁愿花几个小时来编写我自己的移动验证器,无论多慢.我也不需要任何编写自己的库的指南,因为我在互联网上找到了很多.

我在这里问这个是因为我在google上运行了几次搜索并没有找到我想要的内容.所以如果你知道的话,你可以指出一个这样一个工作代码的链接.谢谢.

java open-source chess

9
推荐指数
1
解决办法
4206
查看次数

移动圆与固定线段之间的2D碰撞

在游戏程序的上下文中,我有一个移动的圆圈和一个固定的线段.该段可以具有任意大小和方向.

  • 我知道圆的半径:r
  • 我知道移动前圆圈的坐标:(xC1,yC1)
  • 我知道移动后圆圈的坐标:(xC2,yC2)
  • 我知道线段末端的坐标:(xL1,yL1) - (xL2,yL2)

移动圈

我在尝试计算时遇到困难:

  • 布尔值:如果圆的任何部分在从(xC1,yC1)移动到(xC2,yC2)的同时击中线段
  • 如果布尔值为true,则圆圈中心到达线段时的坐标(x,y)(我的意思是当圆圈第一次与切线相切时)

algorithm 2d collision-detection

8
推荐指数
2
解决办法
7202
查看次数

Swing BoxLayout问题 - 不能让填充物完成它们的工作

我想做什么

在Swing中,我试图使用一个BoxLayout或等效的线性容器,但容器中的项目是垂直拉伸的.在我的应用程序中,我不希望它们垂直拉伸.

我知道我可以在组件上设置preferredSize或maximumSize,但是下面的代码只是一个复制器,我不能硬编码或最大化组件的大小,这些组件的真实性更加复杂和动态.而我只是不能使用BorderLayoutBorderLayout.TOP位置,因为没有滚动条都不会显示如果我这样做.我可能需要滚动窗格.


我试过了什么

所以我尝试使用fillersin in BoxLayoutin In Inibleible Components as Filler,但它只是不起作用.虽然在Oracle文档中,它似乎正是我所需要的.以下是我的尝试:

    import javax.swing.Box;
    import javax.swing.BoxLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;


    public class TestBoxLayout implements Runnable {

        public static void main(String[] args) {
            SwingUtilities.invokeLater(new TestBoxLayout());
        }

        @Override
        public void run() {
            JFrame f = new JFrame("test box layout");

            JPanel b = new JPanel();
            b.setLayout(new BoxLayout(b, BoxLayout.PAGE_AXIS));

            b.add(new JTextField("field 1"));
            b.add(new JTextField("field 2"));
            b.add(new JTextField("field 3")); …
Run Code Online (Sandbox Code Playgroud)

java layout swing boxlayout

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

在Windows中从命令行构建Android

我想从命令行而不是使用Eclipse构建一个Android项目.我已经在我的Windows Vista上安装了ant,我想运行ant release但是我build.xml在Android项目的根目录中找不到该文件.

该项目是使用Eclipse创建的.是否有特定原因导致文件build.xml不存在?请问如何查找/生成它?

谢谢.

ant android

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