我有一个用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。
谢谢

最佳答案

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

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


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

10-02 04:29