[J2ME Q&A]untrusted domain is not configured问题回应-阿里云开发者社区

开发者社区> 开发与运维> 正文

[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:

  1. Permissions which are allowed (granted to contained MIDlet suites), and permissions for which the user must be consulted
  2. 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:

 
Selecting a Protection Domain 
(Click for the full image.)

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 Trusteddomain is a kind of MIDlet security nirvana where all permissions are granted; it's equivalent toMaximum.

 

[Tips]

鉴于从C++开发,到Java开发,许许多多的人都遇到过类似的问题。所以我们强烈建议:

1:你的Windows用户名千万避免有中文字符;

2:你的程序运行路径或者工程路径或者组件注册路径,避免有中文字符;

3:作为一个专职开发者,请养成起英文文件夹名的好习惯;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章