为什么我会看到错误?
PDB_DIR
设置为 C:/PDB files
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>bio_java_maven_hello_world</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.biojava</groupId>
<artifactId>biojava-core</artifactId>
<version>5.4.0</version>
</dependency>
<dependency>
<groupId>org.biojava</groupId>
<artifactId>biojava-structure</artifactId>
<version>5.4.0</version>
</dependency>
</dependencies>
</project>
BioJavaPDBHelloWorld.java
package org.example;
import org.biojava.nbio.structure.*;
import org.biojava.nbio.structure.io.PDBFileReader;
public class BioJavaPDBHelloWorld {
public static void main(String[] args) {
try {
PDBFileReader pdbReader = new PDBFileReader();
// Set the path to the local PDB file directory
pdbReader.setPath("C:/PDB files");
// Reading a structure by PDB code
Structure structure = pdbReader.getStructureById("1lvz"); // Example PDB code
// Print the PDB ID
System.out.println("PDB ID: " + structure.getPDBCode());
// Print the title of the structure
System.out.println("Title: " + structure.getPDBHeader().getTitle());
// Print number of atoms in the structure
System.out.println("ID : " + structure.getId());
} catch (Exception e){
e.printStackTrace();
}
}
}
输出:
"C:\Program Files\Java\jdk-17.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.6\lib\idea_rt.jar=53936:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.6\bin" -Dfile.encoding=UTF-8 -classpath C:\git\bio_java_maven_hello_world\target\classes;C:\Users\pc\.m2\repository\org\biojava\biojava-core\5.4.0\biojava-core-5.4.0.jar;C:\Users\pc\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\pc\.m2\repository\org\apache\logging\log4j\log4j-slf4j-impl\2.13.1\log4j-slf4j-impl-2.13.1.jar;C:\Users\pc\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.1\log4j-api-2.13.1.jar;C:\Users\pc\.m2\repository\org\apache\logging\log4j\log4j-core\2.13.1\log4j-core-2.13.1.jar;C:\Users\pc\.m2\repository\org\biojava\biojava-structure\5.4.0\biojava-structure-5.4.0.jar;C:\Users\pc\.m2\repository\org\rcsb\ciftools-java\0.7.1\ciftools-java-0.7.1.jar;C:\Users\pc\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\pc\.m2\repository\com\google\code\gson\gson\2.8.5\gson-2.8.5.jar;C:\Users\pc\.m2\repository\org\rcsb\mmtf-api\1.0.9\mmtf-api-1.0.9.jar;C:\Users\pc\.m2\repository\org\rcsb\mmtf-serialization\1.0.9\mmtf-serialization-1.0.9.jar;C:\Users\pc\.m2\repository\org\msgpack\jackson-dataformat-msgpack\0.8.18\jackson-dataformat-msgpack-0.8.18.jar;C:\Users\pc\.m2\repository\org\msgpack\msgpack-core\0.8.18\msgpack-core-0.8.18.jar;C:\Users\pc\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.9.3\jackson-databind-2.9.9.3.jar;C:\Users\pc\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;C:\Users\pc\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.9\jackson-core-2.9.9.jar;C:\Users\pc\.m2\repository\org\rcsb\mmtf-codec\1.0.9\mmtf-codec-1.0.9.jar;C:\Users\pc\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\pc\.m2\repository\org\biojava\biojava-alignment\5.4.0\biojava-alignment-5.4.0.jar;C:\Users\pc\.m2\repository\org\biojava\thirdparty\forester\1.038\forester-1.038.jar;C:\Users\pc\.m2\repository\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;C:\Users\pc\.m2\repository\org\jgrapht\jgrapht-core\1.1.0\jgrapht-core-1.1.0.jar;C:\Users\pc\.m2\repository\javax\xml\bind\jaxb-api\2.3.0\jaxb-api-2.3.0.jar;C:\Users\pc\.m2\repository\com\sun\xml\bind\jaxb-core\2.3.0\jaxb-core-2.3.0.jar;C:\Users\pc\.m2\repository\com\sun\xml\bind\jaxb-impl\2.3.0\jaxb-impl-2.3.0.jar;C:\Users\pc\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar org.example.BioJavaPDBHelloWorld
20:18:48 [main] WARN org.biojava.nbio.structure.align.util.UserConfiguration - Could not read dir from system property PDB_DIR or environment variable PDB_DIR, using system's temp directory C:\Users\pc\AppData\Local\Temp\
java.net.ConnectException: Connection timed out: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
at java.base/java.net.Socket.connect(Socket.java:633)
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:498)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:603)
at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:246)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:351)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:373)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1309)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128)
at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1057)
at org.biojava.nbio.core.util.FileDownloadUtils.downloadFile(FileDownloadUtils.java:126)
at org.biojava.nbio.structure.io.LocalPDBDirectory.downloadStructure(LocalPDBDirectory.java:550)
at org.biojava.nbio.structure.io.LocalPDBDirectory.downloadStructure(LocalPDBDirectory.java:498)
at org.biojava.nbio.structure.io.LocalPDBDirectory.getInputStream(LocalPDBDirectory.java:353)
at org.biojava.nbio.structure.io.LocalPDBDirectory.getStructureById(LocalPDBDirectory.java:327)
at org.example.BioJavaPDBHelloWorld.main(BioJavaPDBHelloWorld.java:16)
Process finished with exit code 0
列表似乎正在尝试从互联网下载文件。
但是,我的列表中没有任何此类声明。
那么,这是怎么回事?我该如何解决这个问题?
Stanislav的评论是正确的。
斯坦尼斯拉夫写道,
我猜它需要一个尝试从 ftp.wwpdb.org 下载的数据库?这似乎无法访问。如果您有不同的 PDB 服务器,则可以使用系统变量 PDB.FILE.SERVER 覆盖它。请参阅 LocalPDBDirectory 类中的代码。
您还可以使用以下方法覆盖此行为:
pdbReader.setFetchBehavior(LocalPDBDirectory.FetchBehavior.LOCAL_ONLY);
因此,我将该语句包含在我的代码中以解决该问题。