Java 在linux计算机上运行jar时发生UnauthorizedAccessException
在linux机器上运行jar文件时,我得到以下stacktrace。然而,它在windows机器上工作得非常好Java 在linux计算机上运行jar时发生UnauthorizedAccessException,java,linux,Java,Linux,在linux机器上运行jar文件时,我得到以下stacktrace。然而,它在windows机器上工作得非常好 Exception in thread "Thread-0" java.lang.NoClassDefFoundError: com/sun/servicetag/UnauthorizedAccessException at com.montior.activemq.util.MQProperty.loadProperties(MQProperty.java:31)
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
这是我的loadProperties()方法
有谁能帮我解决这个问题吗 检查您是否有适当的权限运行java之类的应用程序。试试sudo。。。默认情况下,root拥有这些访问权限 您需要对文件具有执行权限,可以尝试。
chmod+x filename查找类
com.sun.servicetag.UnauthorizedAccessException
时导致的错误是java.lang.ClassNotFoundException
。我可以在官方Oracle JDK中的文件db/lib/register.jar
中找到这个类。这使我得出以下可能的结论:
- 您正在Windows下运行Oracle JVM
- 您没有在Linux下运行Oracle JVM(可能是OpenJDK)
您可以尝试将该jar添加到运行时类路径中,看看它是否解决了问题。抱歉!!不允许在生产服务器上使用sudo请求管理员提供访问权限链接已断开更新链接以使用mvnrepository.com。这是一种非常特殊的情况,该类存在于oracle VM中,但不存在于OpenJDK中。
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);
}