Java 如何使用Eclipse调试遗留GWT代码
我有一个棘手的问题。我在遗留应用程序中有一些非常旧的(1.7)GWT代码,需要对其进行一些调试。理想情况下,我只需要将代码更新到更现代的GWT版本,但是有一大堆自定义小部件使得这很困难。因此,我需要找出一些方法来找到能够按原样使用代码的工具 经过大量的挖掘和反复试验,我能够在从命令行运行时启动并运行我的应用程序。然而,当我试图在eclipse中做同样的事情时,我遇到了问题。开发shell将启动,但在尝试打开浏览器时失败,并出现以下错误:Java 如何使用Eclipse调试遗留GWT代码,java,eclipse,debugging,gwt,swt,Java,Eclipse,Debugging,Gwt,Swt,我有一个棘手的问题。我在遗留应用程序中有一些非常旧的(1.7)GWT代码,需要对其进行一些调试。理想情况下,我只需要将代码更新到更现代的GWT版本,但是有一大堆自定义小部件使得这很困难。因此,我需要找出一些方法来找到能够按原样使用代码的工具 经过大量的挖掘和反复试验,我能够在从命令行运行时启动并运行我的应用程序。然而,当我试图在eclipse中做同样的事情时,我遇到了问题。开发shell将启动,但在尝试打开浏览器时失败,并出现以下错误: [ERROR] The browser widget cl
[ERROR] The browser widget class could not be instantiated
org.eclipse.swt.SWTError: XPCOM error -2147221164
at org.eclipse.swt.browser.Browser.error(Browser.java:1336)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:236)
at com.google.gwt.dev.shell.BrowserWidget.<init>(BrowserWidget.java:242)
at com.google.gwt.dev.shell.moz.BrowserWidgetMoz.<init>(BrowserWidgetMoz.java:83)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.google.gwt.dev.shell.PlatformSpecific.createBrowserWidget(PlatformSpecific.java:53)
at com.google.gwt.dev.GWTShell.openNewBrowserWindow(GWTShell.java:504)
at com.google.gwt.dev.GWTShell.launchStartupUrls(GWTShell.java:465)
at com.google.gwt.dev.GWTShell.run(GWTShell.java:548)
at com.google.gwt.dev.GWTShell.main(GWTShell.java:321)
[错误]无法实例化浏览器小部件类
org.eclipse.swt.SWTError:XPCOM错误-2147221164
位于org.eclipse.swt.browser.browser.error(browser.java:1336)
在org.eclipse.swt.browser.browser上(browser.java:236)
位于com.google.gwt.dev.shell.BrowserWidget.(BrowserWidget.java:242)
在com.google.gwt.dev.shell.moz.BrowserWidgetMoz.(BrowserWidgetMoz.java:83)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于com.google.gwt.dev.shell.PlatformSpecific.createBrowserWidget(PlatformSpecific.java:53)
在com.google.gwt.dev.GWTShell.openNewBrowserWindow(GWTShell.java:504)上
位于com.google.gwt.dev.GWTShell.launchstartupURL(GWTShell.java:465)
位于com.google.gwt.dev.GWTShell.run(GWTShell.java:548)
位于com.google.gwt.dev.GWTShell.main(GWTShell.java:321)
你知道我在这里做错了什么吗?是否有更好的选项来调试客户端代码
我的环境:
Ubuntu 18.04(x64)
Eclispe 4.6霓虹灯(x86)
GWT 1.7
Java 7(x86)看起来Eclipse在运行其内部浏览器(XPCOM/Mozilla)时遇到了问题。您可以将Eclipse配置为启动外部浏览器吗
在最新版本的Eclipse中,您可以
首选项->常规->Web浏览器
,其中有“使用内部Web浏览器”选项。选择“使用外部web浏览器”,然后检查外部浏览器。GXT 1.x通过运行一个java应用程序来运行功能,该应用程序包装了一个本机浏览器小部件—在linux上,这是一个旧版本的firefox—类似于firefox 3.5或更早版本
如果内存可用,那么它可以通过在每个平台上使用不同的分发版来工作——例如,在linux上,有一个1.7版本的下载(1.7.1是最新版本,至少有1.x版本)。注意:在该页面上有一个关于linux下载的说明:
Linux发行版二进制文件仅适用于x86体系结构。GWT托管模式需要32位JVM和库。其他32位体系结构可以从源代码构建,但不受支持,需要兼容的Mozilla 1.7.12版本
您确定满足这些要求吗?这是一个好主意,但不是。事实上,Eclipse甚至不允许我选择内部浏览器。选项变灰了。