繁体   English   中英

如何在vscode中使用eclipse Java项目的相对路径添加引用库JAR文件

[英]How to add referenced library JAR files using relative path for eclipse Java project in vscode

我检查了这个问题和许多其他帖子来帮助我解决我的问题,但没有任何效果。

我试图在 vscode 中从 Eclipse 打开一个现有的 Java 项目。 该项目于 Eclipse 2021-06 成功打开,我通过选择lib/文件夹下的 JAR 库并右键单击 - 配置构建批处理 - 添加 select 添加到构建路径来修复引用的库。 然后文件.classpath自动更新。 然后我必须下载 Java 项目所需的 JDK 11(vscode 需要)和 JDK 1.8。 我设法与 eclipse 一起正确设置 JDK,并且一切正常。 我能够编译该项目,导出结果 JAR 并进行部署,一切正常。

我无法使用Open Java Project选项在 vscode 中打开这个项目。 我在添加引用库这个 Java 项目时遇到问题,因为它是一个托管项目(因为它是在 Eclipse 中创建的)。 当我尝试使用 vscode UI 添加库时,我得到了混合结果,有时它不起作用并且构建失败。 我很惊讶,因为在某些情况下,一切正常,然后就不行了。

我尝试在 vscode 中更新.classpath文件,但仍然存在同样的问题。 当我尝试通过单击+在 vscode 中的JAVA PROJECTS树下添加Referenced Libraries (Read Only)中的库时,它没有任何效果。 此步骤将通过将相关值添加到属性"java.project.referencedLibraries"来修改.vscode文件夹下的文件settings.json

我很困惑如何在vscode中为Java项目配置引用的库。 以下是问题总结:

  1. 如何使用基于项目根文件夹的相对路径将库添加到 Java 项目?
  2. 使用.classpath文件添加库和修改settings.json文件有什么区别? 哪一个会赢?
  3. 如何将包含所有 JAR 文件的文件夹作为引用库添加到 Java 项目? 这是为了避免一次添加一个文件。
  4. 为什么.classpath.project文件没有显示在 vscode 资源管理器视图中? 它只会在您从 Windows 文件资源管理器在 vscode 中打开文件时显示。
  5. 我找到命令Configure Classpath但它是只读的,我认为它与.classpath文件相同。 有没有办法从 vscode UI 更改它?
  6. 当我删除.classpath文件或从.classpath文件中删除classpathentry行时,vscode 视图中JAVA PROJECTS下的节点“Referenced Libraries (Read Only)”被删除。 为什么?

有关更多详细信息,请参见下面的快照。

我感谢您的帮助。

在此处输入图像描述 在此处输入图像描述

基本上来说, java 扩展从Referenced Libraries寻找 jars 。

以下是我对你问题的回答:

  1. 右键单击 jar 并选择copy relative path然后将其添加到设置中,单击刷新按钮然后添加的 jar 应该显示在选项 Referenced Libraries 下:

  2. CLASSPATH变量是一种告诉应用程序(包括 JDK 工具)到哪里查找用户类的方法。 在添加 jars 时,设置java.project.referencedLibraries获胜。

  3. 无法访问 select jar 文件夹,但您可以使用键盘快捷键访问 select 所有 jars 然后添加它们。

  4. 有一个名为"java.configuration.checkProjectSettingsExclusions"的设置,默认情况下为真,因此.project.classpath不会在 VS Code 中显示。

  5. 命令Java: Configure Classpath在我的机器上运行,可以自定义当前项目。
    在此处输入图像描述

  6. 我的猜测是当你打开一个新项目时,vscode 弹出一个 window 并询问你是否信任它,而你选择了Not ,那么项目是只读的。 信任工作区然后尝试命令Java:再次配置类路径,它应该是可写的。

@Molly Want-MSFT 的回答对我帮助很大。 以下是我为永久解决问题所做的工作。 我多次应用以下步骤来验证它们每次都能正常工作。

在Eclipse和vscode中打开一个Java项目的步骤:

  1. 下载 vscode、Eclipse 和您的 Java 项目所需的 JDK。

  2. 导入 Eclipse 中的项目,并为工作区和项目设置 JDK。 另外,确保设置编译级别以匹配 JDK。

  3. 设置 Project JDK 以匹配工作区的默认值。

  4. 构建项目(Project-Cleanup)并导出 JAR 以确保一切正常。

  5. 现在在 vscode 中打开项目。

  6. 在设置中的用户和工作区部分设置java.home 这必须是 JDK-11 或更高版本才能允许 function 正确地用于 Java 项目。

  7. "java.configuration.runtimes"部分下的用户settings.json中添加对已安装 JDK 的引用。json。

  8. 重新启动 vscode 并从JAVA PROJECTS视图中选择Configure Java Runtime选项。 确保检测到 Java 项目的 JDK 并正常工作。

  9. 您可能必须打开 Java 源代码文件之一。 稍等片刻,直到它安定下来。 单击右下角的旋转图标,检查 Java Build Status 进度。 此图标用于Language Server ,当构建/编译完成时,它会变成一个看起来像竖起大拇指的图标。

  10. 关闭并打开Configure Java Runtime以验证 JDK 是否被 vscode 检测到。

  11. 确保JAVA PROJECTS视图下的JRE System LibrariesReferenced Libraries都可见且没有任何错误。 检查问题视图并尝试解决所有错误。

  12. Referenced Libraries应该是Read Only的,因为这个项目是在 Eclipse 中设置的。您可以删除.classpath.project文件并在 vscode 中再次打开项目,并尝试通过使用+按钮添加库来解决问题。 删除此类文件后,项目将变为Unmanaged 稍后,您可以恢复此类文件。

当项目是unmanaged时,您使用Configure Java Runtime from JAVA PROJECTS视图,您可以检查项目类型。 您可以根据用户设置中的"java.configuration.runtimes"部分将 JDK 更改为已安装的 JDK 之一setting.json

  1. 如果Referenced Libraries是只读的,即使你可以将库添加到 settings.json 中也没有任何效果,但.classpath文件将获胜。

  2. JAVA PROJECTS视图中,您可以使用选项Build WorkspaceClean Workspace来排除故障并尝试解决错误。

  3. 最后,您可以从JAVA PROJECTS视图的选项中Export JAR 这个选项不清楚,它看起来像和指向右边的箭头|-->

我希望这会有所帮助,如果您有任何问题,请发表评论,我会尽可能回复。

我只是在.classpath文件中更改 jars 的路径字符串,它对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM