我正在尝试设置NetBeans 8.0以便在Java ME中进行开发(我知道这是旧版软件,但这是我所知道的唯一支持Java ME的软件),但是,NetBeans不会在Java ME中检测到我的Java ME平台。每当我尝试加载它时,平台管理器。您可以查看此错误here。我的Java版本 是1.8.0_201。 Java ME SDK中的日志显示为:
[2019-02-16 09:20:12.444]信息-lkit.bootstrap.DeployerManager-注册自定义属性编辑器 [2019-02-16 09:20:12.463]信息-me.toolkit.bootstrap.Namespace-启动批处理,基本模块对象服务器 [2019-02-16 09:20:12.476]信息-bootstrap.ObjectGraphProcessor-合并依赖项... [2019-02-16 09:20:12.476]信息-bootstrap.ObjectGraphProcessor-合并的依赖项... [2019-02-16 09:20:12.477]信息-bootstrap.ObjectGraphProcessor-计算顺序... [2019-02-16 09:20:12.477]信息-bootstrap.ObjectGraphProcessor-计算顺序 [2019-02-16 09:20:12.494]信息-un.jme.toolkit.bootstrap.Batch-初始化对象... [2019-02-16 09:20:12.495]信息-un.jme.toolkit.bootstrap.Batch-正在应用I18N [2019-02-16 09:20:12.495]信息-un.jme.toolkit.bootstrap.Batch-初始化的对象 [2019-02-16 09:20:12.495]信息-un.jme.toolkit.bootstrap.Batch-调用create()方法... [2019-02-16 09:20:12.496]信息-un.jme.toolkit.bootstrap.Batch-调用start()方法... [2019-02-16 09:20:12.503]信息-un.jme.toolkit.bootstrap.Batch-对象已启动 [2019-02-16 09:20:12.506]信息-me.toolkit.bootstrap.Namespace-启动批处理,基本模块进程/设备管理器 [2019-02-16 09:20:12.536]信息-bootstrap.ObjectGraphProcessor-合并依赖项... [2019-02-16 09:20:12.537]信息-bootstrap.ObjectGraphProcessor-合并的依赖项... [2019-02-16 09:20:12.537]信息-bootstrap.ObjectGraphProcessor-计算顺序... [2019-02-16 09:20:12.538]信息-bootstrap.ObjectGraphProcessor-计算顺序 [2019-02-16 09:20:12.865]信息-un.jme.toolkit.bootstrap.Batch-初始化对象... [2019-02-16 09:20:12.914]信息-un.jme.toolkit.bootstrap.Batch-正在应用I18N [2019-02-16 09:20:12.915]信息-un.jme.toolkit.bootstrap.Batch-初始化的对象 [2019-02-16 09:20:12.915]信息-un.jme.toolkit.bootstrap.Batch-调用create()方法... [2019-02-16 09:20:12.919]信息-un.jme.toolkit.bootstrap.Batch-调用start()方法... [2019-02-16 09:20:12.959]错误-sun.kvem.tools.http.HttpServer-java.net.BindException:地址已在使用中:JVM_Bind java.net.BindException:已使用的地址:JVM_Bind 在java.net.DualStackPlainSocketImpl.bind0(本机方法) 在java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106) 在java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387) 在java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190) 在java.net.ServerSocket.bind(ServerSocket.java:375) 在java.net.ServerSocket.bind(ServerSocket.java:329) 在com.sun.kvem.tools.http.HttpServer.createServerSocket(未知来源) 在com.sun.kvem.tools.http.HttpServer.run(未知来源)
我在许多论坛(包括该论坛)上尝试了许多答案,但没有一个起作用。任何帮助表示赞赏。
答案 0 :(得分:2)
您的问题并非微不足道,而且也不是解决方案-它更多地是针对您的问题的更新,因为它太大了,无法发表评论:
首先请注意,在堆栈跟踪java.net.BindException: Address already in use: JVM_Bind
中显示了将Java ME添加为NetBeans平台失败的原因。
Oracle在其 Java ME 文档中提到了在许多地方都可能出现此异常的可能性。 For example:
7.2.1解决设备连接问题
如果具有正在运行的Java ME Embedded运行时实例的设备的IP地址不是 添加设备时在相应的下拉列表中可用 连接,请参阅设备管理器日志文件。它位于日志下 在Oracle Java ME SDK配置目录中。
设备连接日志文件(device-manager.log)包含错误, 您可以查看的警告和信息性事件,以便 找到问题的原因。以下是一些常见的 您可能会遇到的消息:
警告-.vmagent.proxy.DeviceDetection-UDP设备检测失败 java.net.BindException:地址已在使用中:无法绑定
原因:设备检测端口被主机上的另一个应用程序使用 电脑。默认情况下,这些端口是55208和55209。
操作:最好的解决方案是停止使用这些端口或 配置它以使用其他端口。或者,您可以配置设备并 设备管理器使用以下不同的端口:
更改端口指定的端口 proxy.udp_device_detection_request_port和 的proxy.udp_device_detection_response_port属性 设备上的jwc_properties.ini。
在工具箱中的toolkit-lib / lib下创建一个名为proxyOptions.txt的文件。 Oracle Java ME SDK安装目录并添加以下行 对此:
-bcastports <request> <response>
<request>
和<response>
端口号必须与设备属性中指定的端口号匹配(请参阅“步骤> 1”)。
由于设备管理器使用的默认端口是55208和55209,因此您可以检查这些端口是否已被使用:
netstat -aon | findstr 55208
和netstat -aon | findstr 55209
。如果对netstat
的两次调用均未返回任何内容,则说明该端口可用。否则,这些端口已经在使用中,您需要通过检查为使用中的端口显示的PID来找出原因。
或者,仅分配不同的端口号,如上面所示的Oracle文档中所述。如果要这样做,请首先使用netstat
验证新的端口号是否可用。例如,如果要使用端口55210,请调用netstat -aon | findstr 55210
。如果没有其他进程正在使用该端口,则netstat
将不返回任何内容。
更新:
以下方法对我有用: