我从eclipse编译了jar文件(package required lib...),然后当我运行它时,它给我SecurityException:禁止的包名称:java.sql,当我在eclipse中运行代码时,这不会发生。
我看到很多人指出将其中一个包命名为“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
操作系统:MacOS Mojave 10.14.2;
Java版本:9.0.4;
Java(TM)SE运行时环境(build 9.0.4+11);
Eclipse版本:Oxygen.2发行版(4.7.2)
附注。我没有使用mysql或任何其他sql驱动程序。
谢谢你的帮助!
选择Extract required libaries,同时在Jar Generator中设置库处理选项。:)
我正在做一个利用sqlite-jdbc-3.21.0.jar驱动程序的多项选择测验。您可以在这里找到它:https://bitbucket.org/xerial/sqlite-jdbc/downloads/ 当我在Eclipse中运行测试时,它不会给出任何错误。当我编译它时,它不会给出任何错误(打包所需的库)。当我在commandprompt中启动jar文件时,我得到的消息是:禁止的包名称:jav
问题内容: 我创建了一个类“ String”,并将其放置在“ java”包中[实际上,我想创建 java.lang 以查看classLoader将哪个类加载为 一旦将一个类加载到JVM中,就不会再次加载相同的类(我再说一遍,相同的类) 引用于oreilly]。但是后来那件事,为什么在运行此类时我得到 java.lang.SecurityException:禁止的包名称: java 出于安全原因,j
问题内容: 我正在通过Java程序执行exe。该路径是用Java硬编码的。 我已经把我的exe包装在罐子里。 但是由于我在Java文件中硬编码了路径名而感到困惑,因此我无法将jar作为独立程序执行。 是否有任何包装此类jar的提示,即内部具有exe并能够作为独立程序运行? 问题答案: 这会将提取.exe到本地磁盘上的本地文件。当Java程序存在时,该文件将被删除。
我正在编写一个主题建模程序,使用Apache Tika从其他文件类型中提取文本内容。实际上,它在Eclipse上运行得很好。但是当我从窗口10的命令提示符导出到JAR文件使用时。当它尝试代码时会出现以下错误消息:“parser.parse(stream,handler,metadata,parseContext);” 我没有在这里上传我的java代码,因为我不认为它们是问题的根源。因为它可以在Ec
问题内容: 对于Java开发人员来说,这必须是一个非常基本的问题,但是在给定 类名* 的情况下找到合适的 jar文件 的最佳方法是什么? * 例如,给定“ com.ibm.websphere.security.auth.WSSubject ”,您如何跟踪适当的jar文件?(“ google”不是我要找的答案!) 在Java文档不给jar文件的任何暗示,明显的jar文件的名称本身不提供线索。 在Ja
问题内容: 我想用Java构建可运行的jar。我需要在jar中包含一些文件,以便在执行jar时会自动从java类读取文件。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了jar文件,但是无法在jar文件中包含这些外部文件。请让我考虑使用外部文件创建可运行的jar。 我的文件结构是 我访问 的abc.txt 在 test1.java 类。我的代码是 使用eclipse