java - java.lang.NoClassDefFoundError: mpi/MPIException
问题描述
我想为 java 使用 open-mpi。我在这里获得了最新版本的 open-mpi https://www.open-mpi.org/software/ompi/v4.1/ 然后使用以下命令安装它:
sudo ./configure --prefix=/Users/user/openmpi --disable-mpi-fortran --disable-mpi-cxx --disable-mpi-cxx-seek --disable-openib-dynamic-sl --disable- openib-connectx-xrc --disable-openib-udcm --disable-openib-rdmacm --disable-vt --disable-libompitrace --without-slurm --without-lsf --without-tm --without-ugni - -without-mx --enable-mpi-java --with-jdk-dir=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/ --with-threads=posix 2>&1 | tee config.out sudo make -j 4 2>&1 | tee make.out sudo make install 2>&1 | 三通安装.out
所以,/Users/user/openmpi/lib 中有 mpi.jar
我需要从我的老师那里启动一个测试项目https://bitbucket.org/mathpar/dap/
我将 mpi.jar 添加到 Intellij Idea 的依赖项中。使用 /Users/user/openmpi/bin 设置 $PATH
构建项目后,我想运行示例 target/classes/com/mathpar/NAUKMA/examples/HelloWorldParallel 这是命令: mpirun -np 1 java -cp /Users/user/IdeaProjects/dap/target/classes com/mathpar/NAUKMA /examples/HelloWorldParallel
我得到:错误:无法初始化主类 com.mathpar.NAUKMA.examples.HelloWorldParallel 原因:java.lang.NoClassDefFoundError: mpi/MPIException
我试图更改任何一个参数(-cp 类路径或文件路径),但我得到了例如:错误:无法找到或加载主类 com.mathpar.NAUKMA.examples.HelloWorldParallel.java 原因:java.lang。 ClassNotFoundException:com.mathpar.NAUKMA.examples.HelloWorldParallel.java
所以我认为这个问题不在路径中
如果您需要更多信息,欢迎您
这是 com.mathpar.NAUKMA.examples.HelloWorldParallel:
package com.mathpar.NAUKMA.examples;
import mpi.*;
public class HelloWorldParallel {
public static void main(String[] args) throws MPIException {
//iнiцiалiзацiя паралельної частини
MPI.Init(args);
//визначення номера процесора
int myrank = MPI.COMM_WORLD.getRank();
System.out.println("Proc num " + myrank + " Hello World");
//завершення паралельної частини
MPI.Finalize();
}
}
解决方案
尝试:mpirun -np 1 java -cp /Users/user/dap/target/classes com/mathpar/NAUKMA/examples/HelloWorldParallel
推荐阅读
- python - 使用元组过滤数组时出现意外行为
- oracle - MyBatis XML Mapper 文件中的 Oracle 错误,但在 SQL Developer 中没有
- python - 根据列表中的存在创建新的布尔熊猫列
- vba - 如何将vba代码分成多行?
- reactjs - 带有反应导航的父堆栈导航器上的自定义标题
- python - 如何在*抽象语法树之前编辑解析树?
- python - 在类中定义的全局变量
- python - 使用 tf.keras.models.save_model() 保存多输入 TF 2.x 子类模型时出现 TypeError
- python - 代码不同部分的不同 QFileSystemModel 行计数值
- javascript - 为什么我不能使用 getElementsByTagName() 获得多个输入值?