`
Anddy
  • 浏览: 197934 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

debug遇到的问题~Eclipse没有启动Console

    博客分类:
  • java
阅读更多
Debug as -> Java aplication出现如下错误!

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820]

使用的Eclipse版本为:3.3

转载:[size=medium][/size][align=center][/align]

原因是:eclipse和jdk1.6的版本冲突 sun的网站上有 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6476706 目前还没有解决。
还发现了一段精彩的评论,如下:
经过我仔细的查阅Java Doc,发现其中有这么一段话:
http://download.java.net/jdk6/docs/api/java/io/Console.html
"Whether a virtual machine has a console is dependent upon the underlying platform and also upon the manner in which the virtual machine is invoked. If the virtual machine is started from an interactive command line without redirecting the standard input and output streams then its console will exist and will typically be connected to the keyboard and display from which the virtual machine was launched. If the virtual machine is started automatically, for example by a background job scheduler, then it will typically not have a console." ">http://download.java.net/jdk6/docs/api/java/io/Con..."
翻译一下:
虚拟机是否有一个控制台Console取决于所依赖的平台和虚拟机解析该方法的方式。如果虚拟机是从一个交互式的命令行中启动的,而没有重定向标准输入和输出流,那么虚拟机会自动的连接到键盘作为标准输入,并且把启动虚拟机的地方作为标准输出。如果虚拟机是自动启动的,例如通过后台的一个任务计划,那么典型的情况就是没有Console控制台……。
于是,思考一下我们运行上面程序的地点——Eclipse等集成开发环境,这对于上面描述中的把启动虚拟机的地方作为标准输出来说是不合适的,这里的Console()返回的默认情况下是Null,于是就产生了上面的出错信息。
怎么解决该问题呢?这里提供两条思路给大家(已经实际操作过,可以实现功能的正常运作)
1、使用命令行进行运行,编译可以使用集成开发环境。这样可以完成标准输出。
2、在程序中重定向标准输出到其他的设备或者方式(例如写到文本文件),这样也可以“比较不方便的”完成该功能。
总结:
重申!!文档很重要,特别是官方文档和一些说明书性质的文献资料。预期看什么XX天精通YY技术,还不如首先把官方的文档通读一遍。推荐Java Doc和MSDN Library。
看来找到问题所在了,不过还有网友的方法是在main函数后面加个System.exit(0);
果然行得通,可是这是为什么呢?System.exit(0)于return有什么区别的,还得上网查查看:
有人说System.exit(0)是用于中止多线程,也就是所有这个程序生成的所有线程都要中止。但是它在这段程序中的作用我还是搞不清楚。下面对于system.exit(0)的解释值得参考。
return和System.exit(0)的不同[转贴]
如果我在public static void main(String[] args)
中的某一行程式碼加上return;會使JVM得跳離main()
也就是結束程式,那請問和寫System.exit(0)有何不同呢?
因為是在 public static void main(String[] args) 中 return...
  所以其效果等同於 System.exit( ) ...
  但是只要離開這個 method 之中...
  那就會明顯的不同....
  也許可以這麼說...
    return => 回到上一層...
    System.exit() => 回到最上層...

System.exit(0) 應該是一種中斷JVM的指令吧
連finally block遇到System.exit(0)之後都沒有辦法繼續執行了
從 System.exit() 來看,其實參數不管放什麼值,程式都會被終止,
但這個值可以被呼叫它的程式捕捉。例如我們可以在 Windows 寫一支批次檔,
用來執行這支程式,當程式執行完成或中斷後,exit() 的參數就會被傳出,
接著我們就可以判斷 ERRORLEVEL (傳出的值會放在這個變數) 來決定下一步要做什麼
了。
学习一下!
分享到:
评论

相关推荐

    PHP开发调试(debug)工具Eclipse Console for PHP(EC4P) v0.6

    2. **bugthis()函数**:这个特殊函数在遇到问题时特别有用,它会在控制台上打印出当前环境的详细信息,包括函数调用栈、变量值等,有助于快速定位问题所在。这对于排查复杂问题或跟踪深层错误非常有帮助。 3. **...

    CYPRESS USB3.0 FX3 DEBUG仿真设置——Eclipse设置篇

    对于那些希望深入学习或遇到具体问题的开发者来说,可以访问提供USB3.0开发板的专业网站(如***),获取更多关于开发板、工业相机开发套件等多种USB3.0产品的信息和支持。通过这些资源,开发者可以更好地理解USB3.0...

    PHP开发调试(debug)工具Eclipse Console for PHP(EC4P)

    使用eclipse(PDT PHP Development Tools Project)类型的开发工具做PHP开发或者二次开发时,非寻常郁闷的就是调试(debug)的时候不能像其他语言一样在控制台(console) 输出消息,必须得打开网页使用echo或者var_dump等...

    Eclipse 的启动参数

    Eclipse 的启动参数 Eclipse 的启动参数可以分为三类:JVM、Eclipse 和 OSGI。这些参数在 Eclipse 的启动过程中扮演着重要的角色。 JVM 参数 * `-vmargs`:用于设置 JVM 的参数,例如堆栈大小、垃圾回收器等。 * ...

    Debug---Eclipse

    标题中的"Debug---Eclipse"指的是在Eclipse集成开发环境中进行调试的相关知识。Eclipse是一款广泛使用的开源Java IDE,它提供了强大的调试工具,使得开发者能够有效地查找和修复代码中的错误。接下来,我们将深入...

    php在eclipse的控制台console输出调试信息功能实现

    在实际开发中,你可能会遇到一些问题,比如输出的调试信息过多,这时可以考虑使用日志记录函数,如`error_log()`,将信息写入日志文件,便于后期分析。你还可以使用如Monolog这样的第三方日志库,提供更高级的日志...

    Eclipse的Debug调试技巧大全

    【Eclipse Debug调试技巧详解】 Eclipse作为一款强大的Java集成开发环境,其强大的调试功能是开发者不可或缺的工具。本文将详细介绍Eclipse中的调试视图及其常用功能,帮助开发者提升调试效率。 1. **Debug视图** ...

    Debug_c_c++_program_with_eclipse

    此时,Eclipse的工作界面将切换为Debug Perspective。 #### 进行调试 在Debug Perspective下,可以按照以下步骤开始调试: 1. 选择菜单栏中的【Run】->【Debug…】。 2. 设置完成后,点击【Debug】按钮开始调试。...

    Eclipse的debug技术

    2. **启动调试会话**:选择"Run"菜单中的"Debug As" -> "Java Application",或者使用快捷键`Ctrl + F11`,Eclipse将以调试模式启动应用程序。 3. **F5, F6, F8键**: - **F5**:进入方法内部。如果当前行是一个...

    Eclipse控制台展示字符的问题

    Eclipse 控制台的展示字符限制对开发者来说是一个重要的问题,了解这个限制可以帮助开发者更好地 debug 和测试程序。取消 Limit console output 的勾选可以看到全部的控制台信息,避免了控制台展示字符的问题。 ...

    eclipse的调试工具debug的使用

    通过使用Eclipse的Debug工具,开发者可以更加高效地定位问题所在,并进行修复。 #### 二、使用Debug模式启动Web Server 1. **准备工作**:首先确保你的项目已经正确配置在Eclipse环境中,并且具备运行条件。对于...

    Debug c/c++program with eclipse

    - 选择菜单中的【Run】>【Debug…】来启动调试会话。 - 在出现的对话框中配置调试选项,与普通运行程序的设置相似。 - 点击【Debug】按钮开始调试。 #### 调试界面介绍 调试界面主要包括以下几个部分: 1. **...

    Eclipse快捷键大全和启动参数大全

    7. `-debug`: 启动Eclipse调试模式。 8. `-consoleLog`: 输出日志到控制台。 9. `-nosplash`: 隐藏启动画面。 通过以上快捷键和启动参数的使用,开发者可以更高效地利用Eclipse,提升开发效率,并根据具体需求调整...

    jetty在eclipse中配置

    如果出现错误,Eclipse的Console视图和Error Log视图会有相应的输出帮助调试。 7. **更新和部署** 当你修改了代码,Eclipse会自动检测变化并重新部署到Jetty,无需手动停止和启动服务器。你也可以通过右键点击...

    Eclipse窗口调整

    6. **搜索(Search)**:Eclipse提供了强大的搜索功能,允许你搜索代码、资源、问题等。Search视图提供多种搜索选项,如文本搜索、文件搜索、类型搜索等,帮助你快速定位所需信息。 7. **布局管理**:Eclipse支持...

    eclipse-windows-64

    遇到问题时,可以在Eclipse官方论坛、Stack Overflow等平台寻求帮助,获取解决方案或参与讨论。 总之,"eclipse-windows-64" 提供了一个在Windows 64位系统上高效且功能完备的开发环境,让开发者能够专注于代码编写...

    eclipse中的tomcat插件

    3. **调试模式**:在服务器上右键选择"Debug",Eclipse将以调试模式启动Tomcat,允许我们在代码级别进行调试,设置断点,查看变量值等。 4. **自动部署**:Eclipse支持自动部署功能,当项目源代码有改动并保存后,...

    Eclipse的Debug功能介绍及快捷键

    Eclipse是一款广泛使用的Java集成开发环境(IDE),其强大的Debug功能是开发者不可或缺的工具,尤其在调试复杂的程序逻辑时显得尤为重要。以下是对Eclipse Debug功能的详细介绍及其常用快捷键的解析。 1. **监听...

    eclipse安装包.zip

    8. **调试器(Debugger)**:Eclipse提供了强大的调试工具,可以设置断点、查看变量值、单步执行代码,帮助开发者找到并修复问题。 9. **运行配置(Run Configurations)**:用户可以创建和保存不同的运行配置,...

Global site tag (gtag.js) - Google Analytics