Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JUnit测试正常,但maven测试失败,因为在macOS上找不到库(DYLD_library_PATH)_Macos_Maven_Junit_Lotus Notes_Hcl Notes - Fatal编程技术网

JUnit测试正常,但maven测试失败,因为在macOS上找不到库(DYLD_library_PATH)

JUnit测试正常,但maven测试失败,因为在macOS上找不到库(DYLD_library_PATH),macos,maven,junit,lotus-notes,hcl-notes,Macos,Maven,Junit,Lotus Notes,Hcl Notes,我有一个简单的JUnit测试,我在macOS Mojave上的Eclipse中成功地运行了它。该类对动态库进行JNA调用,因此我必须设置运行时环境变量DYLD\u library\u PATH 当我尝试在Eclipse内部或外部运行mvn测试时,它们都失败了 据我所知,原因是macOS'。但是,必须能够以某种方式设置它们,因为Eclipse中的JUnit测试按设计工作 我试图“破解”最末端执行的mvnshell脚本: exec“$JAVACMD”\ $MAVEN_选项\ $MAVEN_DEBUG

我有一个简单的JUnit测试,我在macOS Mojave上的Eclipse中成功地运行了它。该类对动态库进行JNA调用,因此我必须设置运行时环境变量
DYLD\u library\u PATH

当我尝试在Eclipse内部或外部运行
mvn测试时,它们都失败了

据我所知,原因是macOS'。但是,必须能够以某种方式设置它们,因为Eclipse中的JUnit测试按设计工作

我试图“破解”最末端执行的
mvn
shell脚本:

exec“$JAVACMD”\
$MAVEN_选项\
$MAVEN_DEBUG_选项\
-类路径“${CLASSWORLDS\u JAR}”\
“-Dclassworlds.conf=${MAVEN_HOME}/bin/m2.conf”\
“-Dmaven.home=${MAVEN_home}”\
“-dllibrary.jansi.path=${MAVEN_HOME}/lib/jansi native”\
“-Dmaven.multimulticuleprojectdirectory=${MAVEN_PROJECTBASEDIR}”\
${CLASSWORLDS_LAUNCHER}“$@”
通过在
exec
命令之前设置
DYLD\u LIBRARY\u路径
,但未成功。 还尝试修补
$JAVACMD
以首先设置变量,但没有成功

我错过了哪些选项(除了禁用SIP)

我不是在寻找通用解决方案,运行
mvn
是我的目标

类似问题:


    • 我找到了一个解决方案,我不喜欢它,但它似乎有效。JNA调用用于加载使用
      @executable\u路径
      注释的其他代码。运行Java时,可执行文件是JVM,而不是原始应用程序,因此JNA调用将失败

      链接整个程序目录(并在此后进行清理)对我起到了作用。我对mvn的调用如下所示:

      #/bin/bash
      #丑陋的黑客让mvn打球
      JAVA_HOME=/Library/JAVA/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/HOME
      对于onelib,单位为美元(ls/Applications/HCL\Notes.app/Contents/MacOS)
      做
      echo“Linking/Applications/HCL\Notes.app/Contents/MacOS/${onelib}”
      sudo ln-s/Applications/HCL\Notes.app/Contents/MacOS/${onelib}${JAVA_HOME}/jre/bin/${onelib}
      完成
      #马文试验
      运行测试
      #清理
      sudo find$JAVA_HOME/jre/bin-maxdepth 1-type l-delete
      
      YMMV