Java虚拟机崩溃

Java虚拟机崩溃,java,jvm,crash,Java,Jvm,Crash,Im使用SCO OpenServer 5.0.7操作系统。 我的JVM是1.4版,也有1.5版 当我试图在GUI文本字段中输入0x80-0x9f范围内的字符时,我的JVM将CPU加载到100%,停止它的唯一方法是终止JVM进程 当我在java控制台应用程序中输入相同范围的字符时,一切正常 我猜jvm解释控制台stdin和GUI键事件的方式是不同的 有人有想法吗?我如何解决这个问题 我不相信,这是一个程序流程。下面是一个标准的崩溃示例: // TextForm.java import javax

Im使用SCO OpenServer 5.0.7操作系统。 我的JVM是1.4版,也有1.5版

当我试图在GUI文本字段中输入0x80-0x9f范围内的字符时,我的JVM将CPU加载到100%,停止它的唯一方法是终止JVM进程

当我在java控制台应用程序中输入相同范围的字符时,一切正常

我猜jvm解释控制台stdin和GUI键事件的方式是不同的

有人有想法吗?我如何解决这个问题

我不相信,这是一个程序流程。下面是一个标准的崩溃示例:

// TextForm.java

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;

import java.awt.Insets;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.BorderLayout;
import java.awt.Container;

import java.awt.event.*;

public class TextForm extends JPanel {

   private final JTextField[] tf;

   // Create a form with the given labels, tooltips, and sizes
   public TextForm (String[] labels, String[] tips, int[] widths) {
      tf = new JTextField[labels.length];

      setLayout (new GridBagLayout());
      final GridBagConstraints gbc = new GridBagConstraints();
      gbc.anchor = GridBagConstraints.WEST;
      gbc.insets = new Insets (3,3,3,3);

      // Add labels and fields as specified
      for (int i=0; i<labels.length; i++) {
         final JLabel l = new JLabel (labels[i]);

         // Create an accessibility-friendly field
         tf[i] = new JTextField (widths[i]);
         tf[i].setToolTipText (tips[i]); // sets accessible desc too!
         l.setLabelFor (tf[i]);          // sets accessibleName for tf[i]!

         // lay out label & field
         gbc.gridy = i;
         gbc.gridx = 0;
         add(l, gbc);
         gbc.gridx = 1;
         add(tf[i], gbc);
    }
  }

   // Get the contents of one of the TFs.
   public String getEnteredText(int index) {
      return tf[index].getText();
   }

   // A simple example program
   public static void main(String[] args) {
      final String[] labels = { "First Name", "Middle Initial", "Last Name", "Age" };
      final String[] descs = { "First Name","Middle Initial", "Last Name", "Age" };

      final int[] widths = { 15, 1, 15, 3 };

      final TextForm form = new TextForm(labels, descs, widths);

      // A button that dumps the field contents
      final JButton dump = new JButton("Dump");
      class DumpListener implements ActionListener {
         public void actionPerformed(ActionEvent ev) {
            System.out.println(form.getEnteredText(0));
            System.out.println(form.getEnteredText(1));
            System.out.println(form.getEnteredText(2));
            System.out.println(form.getEnteredText(3));
         }
      }
      dump.addActionListener (new DumpListener());

      final JFrame f = new JFrame("Text Form");
   //   frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); // Requires Java 1.3
      final Container c = f.getContentPane();
      c.setLayout (new BorderLayout());
      c.add(form, BorderLayout.CENTER);
      c.add(dump, BorderLayout.SOUTH);
      f.pack();
      f.setVisible(true);
  }
}
//TextForm.java
导入javax.swing.JPanel;
导入javax.swing.JLabel;
导入javax.swing.JFrame;
导入javax.swing.JButton;
导入javax.swing.JTextField;
导入java.awt.Insets;
导入java.awt.GridBagConstraints;
导入java.awt.GridBagLayout;
导入java.awt.BorderLayout;
导入java.awt.Container;
导入java.awt.event.*;
公共类TextForm扩展了JPanel{
私有最终JTextField[]tf;
//使用给定的标签、工具提示和大小创建表单
公共文本表单(字符串[]标签、字符串[]提示、整数[]宽度){
tf=新的JTextField[labels.length];
setLayout(新的GridBagLayout());
最终GridBagConstraints gbc=新的GridBagConstraints();
gbc.anchor=GridBagConstraints.WEST;
gbc.插图=新插图(3,3,3,3);
//按指定添加标签和字段

对于(int i=0;i而言,这两种环境在默认设置方面可能存在差异。我注意到,NetBeans、Eclipse和许多控制台可以设置为平台默认设置以外的其他设置。检查一下也无妨:

System.out.println(System.getProperty("file.encoding"));
System.out.println(Charset.defaultCharset().name());

在默认设置方面,这两个环境之间可能存在差异。我注意到NetBeans、Eclipse和许多控制台可以设置为平台默认设置以外的其他设置。检查一下也无妨:

System.out.println(System.getProperty("file.encoding"));
System.out.println(Charset.defaultCharset().name());

尝试使用
jstack
查看JVM挂起的代码。如果没有看到任何代码,很难提供任何帮助。这可能是JVM的缺陷,也可能是您有一个bug。如果您可以发布一个简短但完整的程序来演示问题,这会有所帮助。尝试使用
jstack
查看JVM挂起的代码。这是一个错误在没有看到任何代码的情况下很难提供任何帮助。这可能是JVM的缺陷,也可能是您有一个bug。如果您可以发布一个简短但完整的程序来演示问题,这将有所帮助。