当前位置: 首页 > 知识库问答 >
问题:

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

连德水
2023-03-14

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

我试图用vscode从Eclipse打开一个现有的Java项目。该项目在Eclipse2021-06中成功打开,我通过选择lib/文件夹下的JAR库并右键单击-configurebuildbatch-addselectaddtobuildpath,修复了引用的库。然后文件.classpath被自动更新。然后我不得不下载JDK11.8和JDK11.11(vscode所需)。我设法与eclipse一起正确地设置JDK,并且一切正常。我能够编译项目,导出结果JAR并进行部署,所有这些都工作得很好。

使用openjavaproject选项在vscode中打开此项目时遇到问题。我在这个Java项目中添加引用库时遇到了一些问题,因为它是一个托管项目(因为它是在Eclipse中创建的)。当我尝试使用vscode UI添加库时,得到的结果好坏参半,有时不起作用,构建失败。我很惊讶,因为在某些情况下,事情只是起作用,然后就不起作用了。

我试图在vscode中更新.classpath文件,但仍然存在相同的问题。当我试图通过单击vscode中的JAVA项目树下添加引用库(只读)中的库时,它没有效果。此步骤将修改.vscode文件夹下的文件settings.json方法是将相关值添加到属性“java.project.ReferenceLibraries”

我对如何配置vscode中Java项目的引用库感到困惑。以下是问题摘要:

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

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

我感谢你的帮助。


共有2个答案

宰父淳
2023-03-14
匿名用户

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

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

>

在Eclipse中导入项目,并为工作区和项目设置JDK。另外,确保将编译级别设置为与JDK匹配。

设置项目JDK以匹配工作区的默认值。

构建项目(项目清理)并导出JAR以确保一切正常。

现在在vscode中打开项目。

设置java.home在设置、用户和工作区部分。这必须是JDK-11或更高版本,以允许vscode在Java项目中正常运行。

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

重新启动vscode并从Java项目视图中选择configureJava运行时。确保Java项目的JDK被检测到并正常工作。

您可能需要打开一个Java源代码文件。等一下,直到它稳定下来。单击右下角的旋转图标,检查Java构建状态进度。此图标用于语言服务器,在构建/编译完成后,它将变成一个看起来像竖起大拇指的图标。

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

确保JAVA PROJECTS视图下的JRE系统库引用库都是可见的,没有任何错误。检查问题视图并尝试解决所有错误。

引用库应为只读,因为此项目是在Eclipse中设置的。您可以删除. classpath. project文件,然后在vscode中再次打开该项目,并尝试通过使用按钮添加库来修复这些问题。当这些文件被删除时,该项目将成为非托管。稍后,您可以恢复此类文件。

当项目处于非托管状态时,您可以使用Java项目视图中的Configure Java Runtime,并可以检查项目类型。您可以根据用户的设置.json中的部分“java.configuration.runtimes”将JDK更改为已安装的JDK之一。

如果引用的库是只读的,即使您可以将库添加到settings.json中,它也没有效果,但是.classpath文件将获胜。

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

最后,您可以从JAVA项目视图上的选项导出JAR。此选项不清楚,看起来像和指向右侧的箭头|--

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

申奇希
2023-03-14

基本上说,java扩展从引用的库中查找JAR。

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

>

  • 右键单击jar并选择复制相对路径,然后将其添加到设置中,单击刷新按钮,然后添加的jar应显示在引用库选项下:

    CLASSPATH变量是告诉应用程序(包括JDK工具)在何处查找用户类的一种方法。在添加JAR时,设置java.project.referencedLibrarieswins。

    无法选择jar文件夹,但您可以使用键盘快捷键选择所有jar,然后添加它们。

    有一个名为“java.configuration.checkProjectSettingsClusions”的设置,默认情况下为true,因此.project 不会显示在VS代码中。

    我的猜测是,当你们打开一个新项目时,vscode弹出一个窗口,问你们是否信任它,而你们选择了不信任它,那个么这个项目是只读的。信任工作区,然后再次尝试Java:configureclasspath命令,它应该是可写的。

  •  类似资料:
    • 问题内容: 我的程序需要读取一些文本配置文件。我当前的代码是: 当我在eclipse中本地运行它时,此方法有效,尽管我确实必须进行破解以处理路径名中的空间。配置文件与上述方法位于同一软件包中。但是,当我将应用程序导出为jar时,出现了问题。该jar位于共享的映射网络驱动器Z:上。当我从命令行运行应用程序时,出现此错误: java.io.FileNotFoundException:文件:\ Z:\

    • 我正在使用maven构建工具。我的意图是将单独的绝对文件夹[例如:C:\test1.jar,C:\test2.jar]中可用的jar文件添加到类路径中。 我可以看到JAR被添加到war中可用的Manifest.mf文件的类路径中,但当war部署时,它由于“java.lang.ClassNotFoundException”[与test1.jar或test2.jar相关]而失败。 这是否意味着在man

    • 问题内容: 我是Java的新手(基本上是LAMP开发人员)。我得到了这个JAVA API来解析文件并显示所有收件箱消息。 我尝试执行给定的文件,但会引发异常。我需要添加/引用API提供的一些文件。 我还没有Java的IDE。维基怎么说 当您的Java项目要求JAR库起作用时,您必须配置项目以在其构建路径中包括这些库。幸运的是,Eclipse使此过程变得简单易记。这里使用的构建是Eclipse Ja

    • 我有以下两个项目放置在一些文件夹中彼此相邻,我想包括一个非梯度项目的具体来源到这个项目的结构如下。 在build.gradle中,为什么跟随不起作用?我有什么选择? 此外,我需要包含来自非 gradle 项目的特定 java 源代码。 盖德·格拉德尔

    • 问题内容: 我有一个专有的jar,要作为依赖项添加到pom中。 但是我不想将其添加到存储库中。原因是我希望我通常的Maven命令(例如)可以mvn compile直接使用。(无需开发人员自己将其添加到某个存储库中)。 我希望该jar位于源代码管理的3rdparty库中,并通过pom.xml文件中的相对路径链接到它。 能做到吗?怎么样? 问题答案: 我希望该jar位于源代码管理的3rdparty库中

    • 问题内容: 我的游戏框架项目使用的资源文件是CSV文件,而我在资源目录下直接在游戏项目的根目录下创建了该文件,因此它与其他目录(如app,public等)处于同一级别。如何从Java或Scala文件中打开这样的文件使用相对于项目根目录的路径?当我进行战争并部署应用程序时,该路径也应该起作用。 问题答案: 该VirtualFile类应该做的,你需要“)fromRelativePath(”的一切,尤其