[J2ME Q&A]untrusted domain is not configured问题回应
[When]
第一次使用Netbean 4.0/5.0开发程序的时候,用户可能在运行程序时,遇到下面这种报错,导致模拟器一闪而过:
正在通过存储根 DefaultColorPhone 来运行
域名不正确,请切换到 'untrusted'
java.lang.SecurityException: untrusted domain is not configured
at com.sun.midp.security.Permissions.forDomain(Permissions.java:530)
at com.sun.midp.dev.DevMIDletSuiteImpl.create(DevMIDletSuiteImpl.java:148)
at com.sun.midp.dev.DevMIDletSuiteImpl.create(DevMIDletSuiteImpl.java:91)
at com.sun.midp.main.Main.runLocalClass(Main.java:453)
at com.sun.midp.main.Main.main(Main.java:126)
Execution completed.
[HowTo]
可能导致的原因之一:
用户的Windows登录用户名是中文的,或者用户的程序路径中有中文。
原因之二:
Netbean中有相应的信任域的设置方式。可能用户没有设置。
建议用户在NetBean选中项目,然后右键à属性,找到运行, 然后配置一下里面的域,按照他说的选择untrusted。
[More Details]
“因为Netbean会在c:\document and settings\${username}\建一个.netbean的子目录,并将一些相关的属性与设定均建于该目录下,但由于Netbean使用简体中文,如果${username}是中文字,将因无法确认untrusted domain的路径而导致其认定错误。
修改方法:
在Netbean安装完且尚未执行前,先至 ” C:\Program Files\netbeans-5.0\etc” 下找netbeans.conf档,并于其中找到下列内容
# netbeans_default_userdir="${HOME}/.netbeans/5.0"
修改成netbeans_default_userdir="F:\prog\JAVA\.netbeans\4.0" 后,再启动netbean即可(上述目录可视需要改变,但建议最好为纯英文字)。
”
And
“
Understanding Protection Domains
A protection comprises two parts:
- Permissions which are allowed (granted to contained MIDlet suites), and permissions for which the user must be consulted
- Criteria for entry into the protection domain
When you click on the Run button in the J2ME Wireless Toolkit, the current MIDlet suite is run in a protection domain called Untrusted
. In this domain, the user is consulted for all permissions. That's why the emulator prompts you for permission when HTTPMIDlet
attempts its HTTP connection.
You can change the MIDlet suite's runtime protection domain by choosing Edit -> Preferences, then clicking on the Security tab:
The J2ME Wireless Toolkit includes four protection domains. MIDlets in the Minimum
domain are denied all permissions. The Untrusted
domain prompts the user for every permission. The Trusted
domain is a kind of MIDlet security nirvana where all permissions are granted; it's equivalent to Maximum
.
”
[Tips]
鉴于从C++开发,到Java开发,许许多多的人都遇到过类似的问题。所以我们强烈建议:
1:你的Windows用户名千万避免有中文字符;
2:你的程序运行路径或者工程路径或者组件注册路径,避免有中文字符;
3:作为一个专职开发者,请养成起英文文件夹名的好习惯;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构