ここに記載されている基本的なneo4jjavaプログラム(https://neo4j.com/developer/java/)を、mavenを使用して実行しようとしています。
正常にコンパイルできましたが、実行すると、以下に示すように、プログラムがクラスを見つけることができなかったことを示すランタイム例外が発生します。
java com.ravi.nFourJ.App
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/driver/v1/TransactionWork
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.neo4j.driver.v1.TransactionWork
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
これは私のpom.xmlファイルです。
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ravi.nFourJ</groupId>
<artifactId>n4-java</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>n4-java</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>1.4.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.neo4j/neo4j-kernel -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>3.5.0-alpha03</version>
</dependency>
</dependencies>
</project>
mvn compileを実行しました。これにより、プロジェクトディレクトリの下に「target」というフォルダーが作成されました。
└── target
├── classes
│ └── com
│ └── ravi
│ └── nFourJ
│ ├── App$1.class
│ └── App.class
└── maven-status
└── maven-compiler-plugin
└── compile
└── default-compile
├── createdFiles.lst
└── inputFiles.lst
「target / classes」ディレクトリに移動してプログラムを実行した後
java com.ravi.nFourJ.App
上記のエラーが発生します。
そうjava com.ravi.nFourJ.App
することで、クラスを実行しますが、クラスパス(つまり、deps)はありません。
代わりにこのコマンドを使用することをお勧めします: mvn exec:java -Dexec.mainClass="com.ravi.nFourJ.App"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加