运行jar文件get java.lang.SecurityException:禁止的包名称:java.sql

时间:2019-04-04 18:23:44

标签: java

我从eclipse编译了jar文件(需要软件包lib ...),然后在运行它时,它给了我SecurityException:禁止的软件包名称:java.sql,当我在内部运行代码时不会发生月食。

我看到很多人指出该问题可能是由于将其中一个软件包命名为“ java。*”而引起的,但是我再次检查了是否没有名为“ java。{somthing}”的软件包。

这里是完整的错误跟踪:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.SecurityException: Prohibited package name: java.sql
    at java.base/java.lang.ClassLoader.preDefineClass(ClassLoader.java:889)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1005)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:545)
    at java.base/java.net.URLClassLoader.access$100(URLClassLoader.java:83)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:453)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:447)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:446)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    at com.fasterxml.jackson.databind.ser.std.StdJdkSerializers.all(StdJdkSerializers.java:55)
    at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.<clinit>(BasicSerializerFactory.java:93)
    ... 12 more

OS:MacOS Mojave 10.14.2;
Java版本:9.0.4;
Java TM SE Runtime Environment(内部版本9.0.4 + 11);
Eclipse版本:Oxygen.2版本(4.7.2)

P.S。我没有使用mysql或任何其他sql驱动程序。

编辑: 当我在eclipse中运行代码时,它可以完美运行。

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在Jar生成器中设置库处理选项时,选择提取所需的库。 :)