如何修复Netbeans 8.0没有检测到Java ME

问题描述 投票:1回答:1

我正在尝试在Java ME中设置NetBeans 8.0进行开发(我知道这是遗留软件,但它是我所知道的唯一支持Java ME的软件),但NetBeans不会在平台管理器中检测到我的Java ME平台任何时候我尝试加载它。你可以看到这个错误here。我的Java版本是1.8.0_201。 Java ME SDK的日志内容如下:

[2019-02-16 09:20:12.444] INFO - lkit.bootstrap.DeployerManager - 注册自定义属性编辑器[2019-02-16 09:20:12.463] INFO - me.toolkit.bootstrap.Namespace - 开始批处理,基础module object-server [2019-02-16 09:20:12.476] INFO - bootstrap.ObjectGraphProcessor - 合并依赖项... [2019-02-16 09:20:12.476] INFO - bootstrap.ObjectGraphProcessor - 合并依赖项... [2019-02-16 09:20:12.477] INFO - bootstrap.ObjectGraphProcessor - 计算顺序... [2019-02-16 09:20:12.477] INFO - bootstrap.ObjectGraphProcessor - 计算顺序[2019-02-16 09 :20:12.494] INFO - un.jme.toolkit.bootstrap.Batch - 初始化对象... [2019-02-16 09:20:12.495] INFO - un.jme.toolkit.bootstrap.Batch - 应用I18N [2019] -02-16 09:20:12.495] INFO - un.jme.toolkit.bootstrap.Batch - 初始化对象[2019-02-16 09:20:12.495] INFO - un.jme.toolkit.bootstrap.Batch - 调用create ()方法... [2019-02-16 09:20:12.496] INFO - un.jme.toolkit.bootstrap.Batch - 调用启动()方法... [2019-02-16 09:20:12.503] INFO - un.jme.toolkit.bootstrap.Batch - 对象已启动[2019-02-16 09:20:12.506] INFO - me.toolkit。 bootstrap.Namespace - 启动批处理,基本模块进程/设备管理器[2019-02-16 09:20:12.536] INFO - bootstrap.ObjectGraphProcessor - 整合依赖项... [2019-02-16 09:20:12.537] INFO - bootstrap.ObjectGraphProcessor - Consolidated dependencies ... [2019-02-16 09:20:12.537] INFO - bootstrap.ObjectGraphProcessor - 计算顺序... [2019-02-16 09:20:12.538] INFO - bootstrap.ObjectGraphProcessor - 计算顺序[2019-02-16 09:20:12.865] INFO - un.jme.toolkit.bootstrap.Batch - 初始化对象... [2019-02-16 09:20:12.914] INFO - un.jme。 toolkit.bootstrap.Batch - 应用I18N [2019-02-16 09:20:12.915] INFO - un.jme.toolkit.bootstrap.Batch - 初始化对象[2019-02-16 09:20:12.915] INFO - un。 jme.toolkit.bootstrap.Batch - 调用create()方法... [2019-02-16 09:20:12.919] INFO - un.jme.toolkit.bootstrap.Batch - 调用st art()方法... [2019-02-16 09:20:12.959]错误 - sun.kvem.tools.http.HttpServer - java.net.BindException:地址已在使用中:JVM_Bind java.net.BindException:Address已经在使用:java.net上的java.net.DualStackPlainSocketImpl.smplBind(DualStackPlainSocketImpl.java:106)中的java.net.AualStackPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)中的java.net.DualStackPlainSocketImpl.bind0(本地方法)中的JVM_Bind。 java.com.ServerSocket.bind(ServerSocket.java:375)中的net.PlainSocketImpl.bind(PlainSocketImpl.java:190),位于com.sun.kvem.tools的java.net.ServerSocket.bind(ServerSocket.java:329) com.sun.kvem.tools.http.HttpServer.run中的.http.HttpServer.createServerSocket(未知来源)(未知来源)

我在包括这个在内的许多论坛上尝试过很多答案,但是没有一个能够奏效。任何帮助表示赞赏。

java netbeans java-me netbeans-8 platform
1个回答
2
投票

你的问题并不容易解决,这不是一个解决方案 - 它更像是你的问题的更新,因为它对于评论来说太大了:

首先请注意,在NetBeans中添加Java ME作为平台失败的原因显示在堆栈跟踪:java.net.BindException: Address already in use: JVM_Bind中。

Oracle在Java ME文档中提到了在许多地方获得此异常的可能性。 For example

7.2.1排除设备连接问题

如果在添加设备连接时相应的下拉列表中没有运行Java ME Embedded运行时实例的设备的IP地址,请参阅设备管理器日志文件。它位于Oracle Java ME SDK配置目录的日志下。

设备连接日志文件(device-manager.log)包含错误,警告和信息事件,您可以查看这些事件以查找问题的原因。以下是您可能遇到的一些常见消息:

WARN - .vmagent.proxy.DeviceDetection - UDP设备检测失败java.net.BindException:地址已在使用中:无法绑定

原因:设备检测端口由主机上的其他应用程序使用。默认情况下,这些端口为55208和55209。

操作:最佳解决方案是停止使用这些端口的应用程序或将其配置为使用不同的端口。或者,您可以将设备和设备管理器配置为使用不同的端口,如下所示:

  1. 更改设备上jwc_properties.ini中proxy.udp_device_detection_request_port和proxy.udp_device_detection_response_port属性指定的端口。
  2. 在Oracle Java ME SDK安装目录中的toolkit-lib / lib下创建一个名为proxyOptions.txt的文件,并向其中添加以下行:

-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平台>添加平台...
  • 单击Add Platform ...按钮,选择单选按钮Custom Java ME CLDC Platform Emulator,然后单击Next>。
  • 单击Browse ...按钮并导航到Java ME文件夹(例如“... \ Java_ME_platform_SDK_8.0”)。
  • 单击Next>然后单击Next>,然后单击Finish。 JavaME
© www.soinside.com 2019 - 2024. All rights reserved.