2013-10-10 29 views
0

在linux机器上运行jar文件时,我得到下面的堆栈跟踪。但是它完美的Windows机器在linux机器上运行jar时出现UnauthorizedAccessException

 Exception in thread "Thread-0" java.lang.NoClassDefFoundError: com/sun/servicetag/UnauthorizedAccessException 
    at com.montior.activemq.util.MQProperty.loadProperties(MQProperty.java:31) 
    at com.montior.activemq.util.MonitorThread.loadProperties(MonitorThread.java:82) 
    at com.montior.activemq.util.MonitorThread.run(MonitorThread.java:39) 
    at java.lang.Thread.run(Thread.java:679) 
    Caused by:java.lang.ClassNotFoundException:com.sun.servicetag.UnauthorizedAccessException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    ... 4 more 

上,这是我loadProperies()方法

public static void loadProperties() throws FileNotFoundException,IOException,ArgumentMissingException { 
     props=new Properties(); 

     // load a properties file 
     String path = "./util.properties"; 
     props.load(new FileInputStream(new File(path))); 
     ActiveMqClient.readProperties(props); 


} 

任何人都可以请帮我这个例外?

回答

0

检查您是否有适当的权限来运行像java这样的应用程序。尝试sudo ...默认情况下root拥有这些访问权限。

你需要对文件执行权限,你可以试试。 文件模式的误差java.lang.ClassNotFoundException寻找类com.sun.servicetag.UnauthorizedAccessException时造成+ X名

+0

对不起!在生产服务器上不允许sudo – csk

+0

要求管理员提供访问权限 – Rupesh

1

。我可以在Oracle JDK官方文件db/lib/register.jar中找到这个类。这使我下面可能的结论:

  • 你与Oracle JVM的Windows
  • 你不能在Linux下的Oracle JVM上运行(这也可能是OpenJDK的)下运行。

根据mavenhub,您可以在sysnet-registration.jar存档中找到丢失的类。

您可以尝试将该jar添加到您的运行时类路径并查看它是否可以解决问题。

相关问题