gpt4 book ai didi

Java 虚拟机崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:10 25 4
gpt4 key购买 nike

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

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

当我在java控制台应用程序中输入相同范围内的字符时,一切都很好。

我猜测 jvm 解释控制台标准输入和 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);
}
}

问题是,jvm 在关键事件发生时崩溃,所以我无法从程序中调试它。

最佳答案

就默认 Charset 而言,两个环境之间可能存在差异。 。我注意到 NetBeans、Eclipse 和许多控制台可以设置为平台默认值以外的其他值。检查一下也没什么坏处:

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

关于Java 虚拟机崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com