如何在Linux上编译JavaMail Mbox Store?

时间:2013-12-26 14:18:18

标签: java linux maven javamail

我需要存储通过POP3下载的本地电子邮件,因此我想使用JavaMail Mbox Store,它是JavaMail源代码的一部分,但未编译。

https://java.net/projects/javamail/pages/MboxStore

我已按照本页末尾的说明操作,但没有运气。以下是指示说:

 export MACH=`uname -p`
 export JAVA_HOME=/usr/java
 cd mbox
 mvn
 cd native
 mvn

我已根据我的环境更改了JAVA_HOME变量。直到最后一个命令我才得到错误。文档说默认情况下这些是maven使用的选项:

mvn -Dcompiler.name=c89 \
     -Dcompiler.start.options='-Xa -xO2 -v -D_REENTRANT -I${env.JAVA_HOME}/include -I${env.JAVA_HOME}/include/solaris' \
     -Dlinker.name=c89 \
     -Dlinker.start.options='-G' \
     -Dlinker.end.options='-L${env.JAVA_HOME}/jre/lib/${env.MACH} -lmail -ljava -lc'

我已将编译器名称更改为gcc并删除了gcc-Xa-x02)无法识别的某些选项。不幸的是,它抱怨缺少maillock.h

您知道我在哪里可以找到完整的依赖项列表吗?我做错了选项吗?我试图寻找任何预编译的版本,但我没有运气。

我正在尝试在Slackware 14.1上编译。

2 个答案:

答案 0 :(得分:1)

在Ubuntu / Debian / Mint上你需要liblockfile-dev包。

答案 1 :(得分:0)

要在Debian Whezzy上构建我必须手动设置结构,然后添加-shared选项以停止对main的未定义引用(在Solaris中将linux等效于-G)。另外为linjvm添加额外的库路径,该路径位于服务器目录

export MACH=amd64
mvn -Dcompiler.name=c89 \
 -Dcompiler.start.options='-v -D_REENTRANT -I${env.JAVA_HOME}/include -I${env.JAVA_HOME}/include/linux' \
 -Dlinker.name=c89 \
 -Dlinker.start.options='-shared' \
 -Dlinker.end.options='-L${env.JAVA_HOME}/jre/lib/${env.MACH} -L${env.JAVA_HOME}/jre/lib/${env.MACH}/server -llockfile -ljava -jverify -ljvm -lc'