当前位置: 首页 > 知识库问答 >
问题:

无法从Netbeans 7.4启动derby数据库

颜文康
2023-03-14

我下载了Netbeans 7.4和Java 7 Update 51。当我尝试从NetBeans启动Java DB或derby连接时,我得到以下错误。这是在Windows8电脑上。我下载了windows xp 32位的版本。工作很好。我不确定缺了什么。

Thu Jan 16 00:48:23 EST 2014 : Security manager installed using the Basic server security policy.
Thu Jan 16 00:48:24 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)

共有2个答案

丁兴德
2023-03-14

根据Java™SE开发工具包7,更新51版本说明

默认套接字权限的更改

分配给所有代码(包括不受信任的代码)的默认套接字权限在此版本中都已更改。以前,所有代码都能够将任何套接字类型绑定到大于或等于1024的任何端口号。仍然可以将套接字绑定到每个系统上的临时端口范围。短暂端口的确切范围因操作系统而异,但通常都在较高的范围内(例如从49152到65535)。新的限制是,临时范围之外的绑定套接字现在需要系统安全策略中的显式权限。

大多数使用客户端tcp套接字和安全管理器的应用程序不会发现任何问题,因为这些套接字通常绑定到临时端口。使用数据报套接字或服务器tcp套接字(和安全管理器)的应用程序可能会遇到以前没有看到过的安全异常。如果出现这种情况,用户应该检查请求的端口号是否是预期的,如果是这样,可以将套接字权限授予添加到本地安全策略中,以解决此问题。

这意味着您必须明确设置应用程序的权限,使其能够访问1025和49151之间的端口范围。因此,您可以通过在授予的权限列表中追加此行来授予此权限:

访问您的Java主目录,在$JAVA_HOME/jre/lib/security/Java.policy处访问您的策略文件,并进行以下更改。

grant{
     //List of granted permissions
     permission java.net.SocketPermission "localhost:1527", "listen";
}
养枫涟
2023-03-14

我就是这么做的:

>

  • 通过执行NetBeans 7.4中的以下指令,找出Java主页的确切位置:

    System.out.println(System.getProperty("java.home"));

    这是我的案例的输出:

    C:\Program Files\Java\jdk1.7.0_51\jre

    这对我来说非常重要,我修改了另一个java.policy,但没有起到任何作用,浪费了我几个小时。

    由于java.policy是一个unix风格的文件并且是只读的,所以我用notepad++打开并编辑了它,并以管理员的身份执行(在同一个Java主页下):

    C:\Program Files\Java\jdk1.7.0_51\jre\lib\security\java.policy

    只在第一次授予后将以下行添加到文件中:

    grant {
        permission java.net.SocketPermission "localhost:1527", "listen";
    };

    祝你好运.

  •  类似资料:
    • 我一直试图启动服务器,但收到以下错误消息: 2013-01-23 19:24:18.133格林威治标准时间:使用基本服务器安全策略安装安全管理器。2013-01-23 19:24:18.430 GMT:无法侦听主机localhost:java上的端口1527。网BindException:无法分配请求的地址:JVM_Bind 最重要的是,我得到一个提示说: 无法连接。无法使用org.apache.

    • 请帮帮我.我使用的是Ubuntu 16.04

    • 这个错误正在显示,我检查了很多地方,但找不到解决方案。 我无法启动kvlite,其他系统有相同的java和kvlite配置。它返回。 null

    • Windows 10,JDK 1.8或15,eclipse 2021-06,maven project HelloWorld。我从eclipse marketplace安装了payara工具。启动payara服务器给出错误消息: “在Felix平台上启动Payara服务器错误:解析系统捆绑语句时出错。org.osgi.framework.BundleException:导出的软件包名称不能是零长度

    • 问题内容: 请看下面的代码 数据库连接器 数据库UI 在这种情况下,我需要通过右键单击 _数据库节点 启动服务器_来手动启动derby(我正在使用NetBeans)。这是一个嵌入式数据库,这意味着我要将其从一台计算机转移到另一台计算机,并愿意通过双击jar文件来开始,而不是在每台计算机上都配置数据库并手动启动它们。但是,如果我没有手动启动数据库,则会收到错误消息 java.sql.SQLNonTr

    • 请看一下下面的代码 数据库连接器。JAVA 用户界面 在这种情况下,我需要通过右键单击数据库节点手动启动derby(我使用的是NetBeans) JAVAsql。SQLNonTransientConnectionException:java。网ConnectException:连接到端口1527上的服务器本地主机时出错,消息“连接被拒绝:连接”。 无论是在NetBeans内部,如果我没有手动启动它