天运行了一下thinking in java 上面的一个小程序
package c03;
class Number{
int i;
}
public class Assignment {
public static void main(String[] args){
Number n1 = new Number();
Number n2 = new Number();
n1.i = 9;
n2.i = 47;
System.out.println("1:n1.i:"+n1.i+","+"n2.i:"+n2.i);
n1 = n2;
System.out.println("2:n1.i:"+n1.i+","+"n2.i:"+n2.i);
n1.i = 27;
System.out.println("3:n1.i:"+n1.i+","+"n2.i:"+n2.i);
}
}
结果报如下错误:
Activation.main: 警告: sun.rmi.activation.execPolicy 系统
属性未被指定且 ExecPermissions/ExecOptionPermissions
均未被授权。随后的激活尝试失败,原因是对
ExecPermission/ExecOptionPermission 的权限检查失败。 有关如何
配置 rmid 安全性的文档说明,请参阅:
http://java.sun.com/j2se/1.4/docs/tooldocs/solaris/rmid.html
http://java.sun.com/j2se/1.4/docs/tooldocs/win32/rmid.html
Activation.main: 出现异常:Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
java.rmi.server.ExportException: Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
at sun.rmi.transport.tcp.TCPTransport.listen(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.exportObject(Unknown Source)
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(Unknown Source)
at sun.rmi.transport.LiveRef.exportObject(Unknown Source)
at sun.rmi.server.UnicastServerRef.exportObject(Unknown Source)
at sun.rmi.registry.RegistryImpl.setup(Unknown Source)
at sun.rmi.registry.RegistryImpl.<init>(Unknown Source)
at java.rmi.registry.LocateRegistry.createRegistry(Unknown Source)
at sun.rmi.server.Activation.main(Unknown Source)
Caused by: java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createServerSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createServerSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source)
... 9 more
一开始以为是JVM被占用了,后来发现是由于
对最外面的大的项目点run as了,所以跳出来一个SELECT JAVA APPLICATION的选框,默认的是**,而最后它用的是第一个选项Activation-sun.rmi.server,就报错了!
运行ECLIPSE中的java程序是要点函数名,再run as
如运行hello world,则需对
HelloWorld.java下的
HelloWorld下的
main点右键再选run as!
其实只要不对最外面的项目点run as 都可以运行!
如果你搜索“sun.rmi.activation.execPolicy 系统
属性未被指定且 ExecPermissions/ExecOptionPermissions
均未被授权。随后的激活尝试失败,原因是对
ExecPermission/ExecOptionPermission 的权限检查失败。”这个错误的话就走入了误区!