首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在我的git附件项目中运行java。

无法在我的git附件项目中运行java。
EN

Stack Overflow用户
提问于 2022-10-25 18:06:27
回答 1查看 20关注 0票数 -1

我有一个由数据管理的研究项目的代码(它是git和git-附件的前端)。它包含我的代码和一个奇点容器,以保证可再现性。

我手动将java安装到这个目录中。最初我可以运行java -version,但是一旦我使用git annex add <java_dir>git add .git commit提交了我的更改,我就不能再启动java了。我收到以下错误消息:

代码语言:javascript
复制
Error: could not find libjava.so
Error: Could not find Java SE Runtime Environment.

如何避免java和git-附件之间的这种不兼容?

(附件:我如何安装java)

代码语言:javascript
复制
mkdir lib
cd lib
wget https://javadl.oracle.com/webapps/download/AutoDL?BundleId=246799_424b9da4b48848379167015dcc250d8d -O jre_8_341.tgz
tar -xf ./jre_8_341.tgz # creates jre1.8.0_341/
rm jre_8_341.tgz
cd jre1.8.0_341/bin
EN

回答 1

Stack Overflow用户

发布于 2022-10-25 18:06:27

结果,java二进制文件试图找到自己的路径,从调用strace java -version就可以看出这一点。

代码语言:javascript
复制
< ... lots of strace output... >
readlink("/proc/self/exe", "/proj/.git/annex/objects/X5/f3/M"..., 4096) = 120
< ... more strace output ...>

readlink syscall进入.git/annex/objects目录,git-附件在该目录中保存大文件。因此,java得到了它的安装目录的错误答案,因此失败了。

解决方案是git annex unlock $JAVA_HOME/bin/java (其中$JAVA_HOME是您提取的java文件夹)。$JAVA_HOME/lib/amd64/server/libjvm.so也必须这样做,它尝试相同的manoever。

最后,必须在未锁定状态下提交文件。实际上,文件不能是指向git-附件对象存储的符号链接,而必须是常规文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74198405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档