首页 > 解决方案 > 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();
    }
}

标签: javaopenmpi

解决方案


尝试:mpirun -np 1 java -cp /Users/user/dap/target/classes com/mathpar/NAUKMA/examples/HelloWorldParallel


推荐阅读