Java虚拟机启动问题

时间:2011-03-24 07:09:42

标签: java jvm

全部好,

我遇到了一个问题,Java突然完全停止了工作。我开始收到类似“无法创建虚拟机”的错误。内存没有问题(它有3GB内存),并且在这个系统中运行正常超过6个月没有任何问题。

以下是一些特殊的行为 -

  1. 当我启动eclipse时,我看到Java虚拟机对话框,其中包含错误消息,如
    “无法找到主类org.eclipse ...... support.legacysystemproperties”

  2. Eclipse能够启动(出现上述错误),但在运行程序时,我在对话框中收到类似“无法创建Java虚拟机”的错误,并在单击该对话框上的“确定”后,看到“无法识别的选项-dfile.encoding = cp1252

  3. 之类的错误
  4. 我使用文本编辑器,写了一个类Test.java(没有任何包),编译它(编辑#1: javac Test.java)。但是当我执行程序时(编辑#1: java Test),我收到以下错误 - 线程“main”中的异常java.lang.NoClassDefFoundError:test(错误名称:Test)。

  5. 编辑#1: 注意:已在目录中成功创建已编译的文件Test.class。我确实重新检查了路径和类路径环境变量。一切似乎都是正确的。

    请注意,对于影响Java的案例似乎存在一些问题。

    我确实卸载了Java(所有版本),重新安装,但没有任何帮助。此外,我确实运行了CCleaner来清理注册表,Malwarebytes的反恶意软件,但到目前为止没有任何帮助。

    感谢有人可以帮我解决问题。

    我做了google搜索,发现有些人遇到了类似的问题,但是除了一些建议重新安装Windows操作系统本身之外,他们都没有找到解决方案,我想避免它。我做了系统恢复,但其他一些失败了 原因。

    请注意我使用Java超过10年。这是我第一次遇到这样的问题。这与Windows注册表或其他一些系统配置有关,但我无法找到确切的问题。

    无论如何都在等待一些好的建议。

1 个答案:

答案 0 :(得分:0)

编辑:好的,所以看起来Java可执行文件的命令行参数是低级的。

第1步:验证

您可以通过创建一个只转储其参数的小写名称的类来仔细检查这是否会影响所有命令行参数:

public class test {
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}

使用各种输入编译并运行它。

第2步:检查范围

假设步骤1确认了问题,如果您安装了.NET,您可以看到它是否也会影响它。创建一个文件Test.cs:

using System;

class Test
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
}

使用在.NET框架目录中找到csc的“csc Test.cs”进行编译(例如,对于.NET 4,在c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319中)。

像这样运行:

Test foo BAR Baz

看看会发生什么

第3步:如果第2步显示问题仅限于java.exe:

  • 检查您的路径,找出实际
  • 运行java.exe的位置
  • 从JRE或JDK目录
  • 尝试显式运行java.exe