![](/img/trans.png)
[英]Error: java.lang.NoClassDefFoundError when trying to install PGDSpider2 on Mac
[英]java.lang.NoClassDefFoundError while trying to run PGDSpider
我正在尝试运行生物信息学软件PGDSpider 。 安装说明非常简单:
bash./PGDSpider2.sh
。但是,当我尝试执行程序时,出现与 Java 相关的错误,我不太明白:
luis@luis-Inspiron-5570:PGDSpider_2.1.1.5$ bash PGDSpider2.sh
java.lang.NoClassDefFoundError: org/w3c/dom/ls/DocumentLS
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:861)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:773)
at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:901)
at ch.unibe.iee.cmpg.pgdspider.PGDSpider.main(PGDSpider.java:17)
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ls.DocumentLS
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 15 more
我正在研究 Ubuntu 20.04 并拥有以下版本的 Java:
(bioinfo) luis@luis-Inspiron-5570:PGDSpider_2.1.1.5$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 14.0.1+7-Ubuntu-1ubuntu1, mixed mode, sharing)
任何帮助将不胜感激。
我对 PGDSpider 不熟悉,因此您将不得不在PGDSpider2.sh
脚本中进行一些摆弄,但您应该会看到类似于以下内容的行:
java PGDSpider2.jar
该行应更改为以下内容:
java --add-modules java.se.ee -jar PGDSpider2.jar
同样,我的修复可能并不完美,因此请随意添加可能提供更多见解的评论(例如PGDSpider2.sh
的确切文本)。 默认情况下,最新版本的 Java SDK 不再包含某些 Java EE 模块,看起来您的工具是在包含这些模块时构建的。 这里的策略只是让它们再次可用。
通过以下步骤解决了错误:
sudo apt-get install openjdk-8-jre
(bioinfo) luis@luis-Inspiron-5570:PGDSpider_2.1.1.5$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-14-openjdk-amd64/bin/java 1411 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-14-openjdk-amd64/bin/java 1411 manual mode
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
bash PGDSpider2.sh
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.