线程“main”中的异常java.lang.SecurityException:禁止的包名:java.sql

时间:2018-02-27 16:05:04

标签: java java-9 ojdbc

我有一个用jdk 1.6生成的jar,它在jdk 1.7和1.7下运行正常但是在尝试用1.9运行它时我得到以下异常:

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.sql
    at java.base/java.lang.ClassLoader.preDefineClass(Unknown Source)
    at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
    at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
    at java.base/java.net.URLClassLoader.access$100(Unknown Source)
    at java.base/java.net.URLClassLoader$1.run(Unknown Source)
    at java.base/java.net.URLClassLoader$1.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.net.URLClassLoader.findClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.base/java.lang.Class.getMethodsRecursive(Unknown Source)
    at java.base/java.lang.Class.getMethod0(Unknown Source)
    at java.base/java.lang.Class.getMethod(Unknown Source)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:57) 

我的主要课程:

package eai_principale;

import com.siebel.data.SiebelException;
import java.io.IOException;
import java.sql.SQLException;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;

public class MainExecute
{
  public static void main(String[] args)
    throws SQLException, SiebelException, ParserConfigurationException, SAXException, IOException
  {
    System.out.println("-----------------START EAI CONNECTOR EXECUTION------------------");
    Principale execute = new Principale();

    String ligneId = args[0];
    String path = args[1];

    execute.execute(ligneId, path);

    System.out.println("-----------------END EAI CONNECTOR EXECUTION------------------");
  }
}
你可以帮帮我吗? 我正在使用Eclipse,我正在使用jdbc lib。 THX

1 个答案:

答案 0 :(得分:1)

看起来像是Eclipse JDT中的一个错误,特别是在jarinjarloader部分。它在Eclipse Bugzilla中被引用为Bug 525885 - jarinjarloader with jdbc jar does not work in jre9

bugzilla文章建议使用标准的MANIFEST可能是一种解决方法:

  

问题是如果我手动删除jarinjarloader部分并使用标准的MANIFEST文件,我的jar将在jre9中执行。