如何修复Netbeans 8.0无法检测到Java ME

时间:2019-02-15 21:29:32

标签: java netbeans java-me netbeans-8 platform

我正在尝试设置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(未知来源)

我在许多论坛(包括该论坛)上尝试了许多答案,但没有一个起作用。任何帮助表示赞赏。

1 个答案:

答案 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。

     

操作:最好的解决方案是停止使用这些端口或   配置它以使用其他端口。或者,您可以配置设备并   设备管理器使用以下不同的端口:

     
      
  1. 更改端口指定的端口   proxy.udp_device_detection_request_port和   的proxy.udp_device_detection_response_port属性   设备上的jwc_properties.ini。

  2.   
  3. 在工具箱中的toolkit-lib / lib下创建一个名为proxyOptions.txt的文件。   Oracle Java ME SDK安装目录并添加以下行   对此:

  4.   
     

-bcastports <request> <response>

     

<request><response>端口号必须与设备属性中指定的端口号匹配(请参阅“步骤> 1”)。

由于设备管理器使用的默认端口是55208和55209,因此您可以检查这些端口是否已被使用:

  • 打开命令提示符窗口。
  • 提交netstat -aon | findstr 55208netstat -aon | findstr 55209

如果对netstat的两次调用均未返回任何内容,则说明该端口可用。否则,这些端口已经在使用中,您需要通过检查为使用中的端口显示的PID来找出原因。

或者,仅分配不同的端口号,如上面所示的Oracle文档中所述。如果要这样做,请首先使用netstat验证新的端口号是否可用。例如,如果要使用端口55210,请调用netstat -aon | findstr 55210。如果没有其他进程正在使用该端口,则netstat将不返回任何内容。


更新

以下方法对我有用:

  • 选择工具> Java平台>添加平台...
  • 单击添加平台... 按钮并选择单选按钮自定义Java ME CLDC平台模拟器,然后单击下一步>
  • >
  • 单击“浏览...”按钮并导航到Java ME文件夹(例如“ ... \ Java_ME_platform_SDK_8.0”)。
  • 单击下一步> ,然后单击下一步> ,然后单击完成

    JavaME