2014-01-27 54 views
1

我在使用netbeans时试图启动Java DB的问题。它给我一个访问被拒绝的错误。经过一些研究,我发现这个提供了修复的Unable to start derby database from Netbeans 7.4。我试图编辑java策略文件,但我无法打开java.policy文件,因为我不确定如何。我也发现这个,它说如何打开文件http://docs.oracle.com/javase/tutorial/security/tour2/wstep1.html,但是当我在命令行输入策略工具时,没有任何东西弹出来。如何编辑Java策略文件?

这是我一直recieving

Mon Jan 27 13:09:48 EST 2014 : Security manager installed using the Basic server security policy. 
Mon Jan 27 13:09:48 EST 2014 : access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve") 
java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve") 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) 
    at java.security.AccessController.checkPermission(AccessController.java:559) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
    at java.lang.SecurityManager.checkListen(SecurityManager.java:1134) 
    at java.net.ServerSocket.bind(ServerSocket.java:375) 
    at java.net.ServerSocket.<init>(ServerSocket.java:237) 
    at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231) 
    at org.apache.derby.impl.drda.NetworkServerControlImpl.createServerSocket(Unknown Source) 
    at org.apache.derby.impl.drda.NetworkServerControlImpl.access$000(Unknown Source) 
    at org.apache.derby.impl.drda.NetworkServerControlImpl$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source) 
    at org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(Unknown Source) 
    at org.apache.derby.drda.NetworkServerControl.main(Unknown Source) 

回答

0

请务必备份策略文件试图编辑:)

策略文件只是一个文本文件之前的错误。你会像编辑一个java源文件一样编辑(I.E.和一个文本编辑器)。记住,先备份文件(安全播放)。

希望帮助:)

+0

你能后的“拒绝访问错误”?什么被拒绝,使用一个端口?访问目录?执行某些东西的能力?登录到数据库?你没有指定什么被拒绝。你暗示,但你没有指定。因此最好发布实际的错误消息(相关部分)。 :) – lorinpa

+0

好吧,所以我用文本编辑器打开它,但我不知道wherre坚持这一行,权限java.net.SocketPermission“localhost:1527”,“listen”;我可以把它放在最后? – user3241544

+0

“赠款{....}”内的位置无关紧要。重要的是,你是否替换了一条线?换句话说,你是否已经有了一个“权限为java.net.SocketPermission”的条目。如果是这样,您想要替换参数(用新设置替换该行)。您不需要针对同一个java.net.SocketPermission的2个授权语句。这是否有道理:) – lorinpa

1

我在Mac(OSX运行小牛,JDK 1.7更新51,和Glassfish 4.0)和我有同样的问题暂时无法编辑文件。所以,我做了以下内容:

  1. 查找输入 sudo vim java.policy
  2. /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/
  3. 开始VIM您java.policy文件通过键入Vim命令走进文件插入模式 a
  4. 添加下面的代码给你的权限: // permission for Glassfish 4.0 deployment permission java.net.SocketPermission "localhost:1527", "listen";
  5. 按回车键返回到命令模式。
  6. 现在保存,并通过键入:wq
  7. 重新启动服务器退出该文件,你应该没问题