0

Linux マシンで jar ファイルを実行しているときに、次のスタック トレースが表示されます。ただし、Windowsマシンでは完全に動作します

     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);


}

誰でもこの例外について私を助けてくれますか?

4

2 に答える 2

1

java.lang.ClassNotFoundExceptionクラスを探すときにエラーが発生しcom.sun.servicetag.UnauthorizedAccessExceptionます。db/lib/register.jarこのクラスは、公式の Oracle JDKのファイルにあります。これにより、次の考えられる結論に至ります。

  • Windows で Oracle JVM を実行している
  • Linux で Oracle JVM を実行していません (おそらく OpenJDK です)。

sysnet-registration.jarmvnrepository によると、不足しているクラスはアーカイブで見つけることができます。jar-download.com を使用して、クラス名からそれを含む jar にバックトラックしました (前のリンクがスパム ファームに到達したため、リンクされていません)。

その jar を実行時のクラスパスに追加してみて、問題が解決するかどうかを確認してください。

于 2013-10-10T15:45:27.850 に答える