.

.

.

.

.

很久没有写博客了,最近实在是太忙,一直想写点干货,但是一直没静下心来学习。

今天又在加班忙碌之中,结果谁知道越忙碌越出问题。先是 weblogic 没有正常启动,凭经验第一反应就是7001端口被其它程序占用了,然后通过命令查看之后,发现果然是被占用了,占用端口的竟然是Eclipse,查找占用端口的方式请移步至博主的另一篇文章《【windows】查询占用端口的程序——记一次解决webloigc启动失败的过程》。

Eclipse之前是不占用7011端口的,这次占用估计可能是启动了一个随机端口,恰巧占用了weblogic的web服务端口。既然已经找到了罪魁祸首,那就重启Eclipse吧。谁知点击关闭按钮的时候,没有弹出确认退出的对话框,而是界面直接就消失了,但是进程却没有消失。直觉告诉博主:坏了,可能要出问题。果然不出所料,再次启动就会弹出提示说遇到了一个问题,具体详见 workspace/.metadata/.log 文件。博主打开这个日志文件一看,里面报了一个异常:

org.eclipse.swt.SWTException: Invalid thread access

at org.eclipse.swt.SWT.error(SWT.java:4397)
at org.eclipse.swt.SWT.error(SWT.java:4312)
at org.eclipse.swt.SWT.error(SWT.java:4283)
at org.eclipse.swt.widgets.Display.error(Display.java:1258)
at org.eclipse.swt.widgets.Display.checkDevice(Display.java:764)
at org.eclipse.swt.widgets.Display.addListener(Display.java:626)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.<init>(IDEWorkbenchAdvisor.java:176)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.<init>(IDEWorkbenchAdvisor.java:184)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:125)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)

这个异常的大概意思就是在非SWT线程中是不允许操作UI组件的,否则就会抛出这个异常。

好吧,一看堆栈信息并不像是某个插件导致的,莫非是 eclipse 4.3 的bug?先不深究了。

说说这个问题是怎么解决的吧。

折腾了很久,博主差点就重装系统了,后来发现解决办法很简单,只需要在Eclipse第一次启动的时候加上一个 -clean 参数即可,下次再启动就不用加这个参数了。

再简单解释一下这个参数的作用,Eclipse为了加快启动速度会将插件进行缓存,但是恰巧就是这些缓存有的时候会出问题,所以用 -clean 参数让 Eclipse 清除掉这些缓存就行了,不过加上这个参数之后 Eclipse 的启动速度会变慢,好在只需使用一次。

解决Eclipse异常关闭后重启报 org.eclipse.swt.SWTException: Invalid thread access 的问题的更多相关文章

  1. org.eclipse.swt.SWTException: Invalid thread access问题解决方法

    转自 http://blog.csdn.net/ecjtuxuan/article/details/2125023 怎么解决SWT多线程错误:Caused by: org.eclipse.swt.SW ...

  2. eclipse异常关闭,而Tomcat然在运行解决方法

    1.eclipse异常关闭,而Tomcat然在运行,再启动tomcat会出现端口冲突 解决方法:打开任务管理器,找到javaw.exe,点击关闭,就可以了

  3. eclipse异常关闭,无法启动tomcat解决办法

    如果eclipse异常关闭,会出现以下 此时需要关闭javaw.exe即可,重新启动tomcat了. 关闭javaw.exe需要打开任务关闭器,选择详细信息,然后结束javaw.exe即可

  4. myeclipse 8.5打开文件Could not open the editor: Invalid thread access 异常

    最近打开了一个好久没用的myeclipse 8.5下的工作区间,导入一个项目,想打开文件编辑提示Could not open the editor: Invalid thread access

  5. Windows下使用TeamViewer连接远程服务器,以及解决“远程桌面关闭后TeamViewer不能连接”的问题

    1.本地安装TeamViewer,完成后如下: 2.远程服务器也安装TeamViewer 在本地TeamViewer中得伙伴ID,输入远程的ID,弹出如下对话框,输入密码即可. 3.这时虽然可以连接, ...

  6. RAC 单节点实例异常关闭,关键报错ORA--29770

    监控系统监控到RAC 的一个实例异常关闭 ,时间是凌晨1点多,还好没有影响到业务 之后就是分析原因 这套RAC搭建在虚拟化环境OS SUSE11 查看oracel alert log信息 Mon :: ...

  7. 关于Tomcat重启和关闭后重启session变化

    ,当页面第一次访问,session的attribute还未赋值,为null 当页面第二次访问时,这时当前的session的attribute有值了! 到了本文章的点题时刻!! 如果我是直接点击serv ...

  8. Eclipse 导入项目后启动报异常:java.lang.UnsatisfiedLinkError: Native Library *.dll already loaded in another classloade 解决方法

    tomcat 服务器的配置信息如下:

  9. 解决mac eclipse 异常退出后无法打开处于loading状态

    <workspace>\.metadata\.plugins\org.eclipse.core.resources目录,删除文件 .snap

随机推荐

  1. mysql远程访问,修改root密码

    mysql -uroot -p #input password use mysql; update user set host='%' where user='root'; flush privile ...

  2. ORA-14404: partitioned table contains partitions in a different tablespace

    SQL> drop tablespace nn_data including contents and datafiles; drop tablespace nn_data including ...

  3. Oracle 12C -- 设置CDB启动后,PDBs自动启动

    CDB重启后,PDBs默认是处于mounted状态 SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE ---------------- ...

  4. GDI+绘制渐变色

    例1: void CTextDlg::OnPaint(){Graphics graphics(this->m_hWnd); LinearGradientBrush linGrBrush( Poi ...

  5. python 多进程,实际上都没有运行,sleep

    进程以及状态 1. 进程程序:例如xxx.py这是程序,是一个静态的 进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元. 不仅可以通过线程完成多任务,进程也是可以 ...

  6. Four Node.js Gotchas that Operations Teams Should Know about

    There is no doubt that Node.js is one of the fastest growing platforms today. It can be found at sta ...

  7. pm2 设置开机启动

    一.官方文档: 官方相关文档:http://pm2.keymetrics.io/docs/usage/startup/#generating-a-startup-script 二.具体操作过程如下: ...

  8. redis 3.2.3的源码安装

    Install necessary packages On CentOS : yum install wget make gcc tcl On CentOS yum install wget make ...

  9. js页面加载完后执行(document.onreadystatechange 和 document.readyState)

    js页面加载完后执行javascript(document.onreadystatechange 和 document.readyState) document.onreadystatechange ...

  10. session 详解

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...