我下载了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)
根据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";
}
我就是这么做的:
>
通过执行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内部,如果我没有手动启动它