【问题标题】:Visual Studio Code, Java Extension, howto add jar to classpathVisual Studio Code,Java 扩展,如何将 jar 添加到类路径
【发布时间】:2018-10-18 08:14:09
【问题描述】:

在 Eclipse 中,我使用

添加了一个 jar 库

项目->构建路径->配置构建路径

VisualStudioCode 中的等价物是什么?我查看了launch.json。定义了一个类路径。向这个类路径(数组)变量添加 jar 似乎没有效果。

本质上,这是一个重复的问题 Visual Studio Java Language Support add jar 但这个问题没有答案。

这是一个非常基本的问题,我真的不明白要在 Microsoft 的文档中或通过 Google 搜索找到解决方案。

【问题讨论】:

  • visual studio 代码是一个文本编辑器,它不是一个 ide,因此您的系统变量(如果您在 Windows 上)将为您的 java 和其他库提供类路径
  • 从这里开始,我还没有完全阅读,但你可以找到有用的信息code.visualstudio.com/docs/java/java-tutorial
  • 这不是重复的,因为问题是关于 Visual Studio,而不是 Visual Studio Code
  • 感谢您的提示。我尝试这样做:export CLASSPATH=,然后使用此环境变量启动 Visual Studio 代码,但问题仍然存在:构建失败。
  • 我不确定 vscode 是否真的适合 Java 开发,但无论如何这将取决于您将安装哪个扩展以使用 Java 开发。你安装了什么???此外,无论您选择哪种方式,我都建议您使用 Maven 或 Gradle 来管理您的依赖关系。

标签: java visual-studio-code


【解决方案1】:

更新到最新版本

先决条件:在 VS Code 中,您需要打开文件夹而不仅仅是文件以包含任何用于编译、运行、调试和测试的 jar 文件

VSCode 可以很好地与 maven 或 gradle 配合使用,如果我们使用其中任何一个,我们应该使用 maven 或 gradle 进行依赖管理。

如果你没有使用任何依赖管理,那么添加jar文件有两个选项

选项 1:手动

打开 .vscode/settings.json 文件(如果不存在,您可以创建一个)并在其中添加所需的 jar 文件,如下所示。在这种情况下,所有存在于 lib 目录中的 jar 文件都将被包含在内 + 我添加了 common-logging-1.1.1.jar,它位于项目目录之外

{
    "java.project.referencedLibraries": [
        "lib/**/*.jar",
        "c:\\path\\to\\jarfile\\commons-logging-1.1.1.jar"
    ]
}

选项 2:通过用户界面

如果启用了 Java 扩展,那么在左侧面板上将会有 Java 依赖项。 在那里,您可以单击+ 符号来添加客户 jar 文件。使用这种方法,settings.json 文件也会被更新

保留旧答案以供参考...

VSCode 可以在 maven 或 gradle 中正常工作。但是没有这些,据我所知,他们没有提供任何直接的方法来在类路径中添加 jar 文件。

解决方法是手动在.classpath 文件中添加条目。

例如在下面的文件中,我通过添加一行 <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/> 手动添加了位于 lib 目录中的 common-logging-1.2.jar

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="output" path="bin"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
</classpath>

更新

最后,VSCode 团队正在努力寻找更好的解决方案。这仍在进行中,但您可以参考此链接以获得更好的方法https://github.com/microsoft/vscode-java-pack/issues/94#issuecomment-573487982

2020 年 4 月更新

VSCode 扩展更新现在支持此功能开箱即用。 现在 VS Code Java 让您无需任何构建工具即可直接使用 JAR 文件。转到 JAVA DEPENDENCIES 视图,找到 Referenced Libraries 节点并单击 + 图标。

参考https://github.com/microsoft/vscode-java-pack/blob/master/release-notes/v0.9.0.md#work-with-jar-files-directly

【讨论】:

  • 当我查看 Java 依赖项时,我没有看到“引用库”节点。我只看到“JRE 系统库”。 (我在 macOS 10.15.4 上运行 1.44.2)
  • 我得到了类似的东西——我看到的只是“JRE System Library”节点——没有“+”按钮,一个“Maven Dependencies”节点,它有一个“+”按钮,但随后不允许我在我的计算机上找到依赖的 jar 文件。如何让“引用的库”节点显示?
  • 如果你使用maven,你应该使用maven进行依赖管理。上面的解决方案是如果你没有使用maven或者gradle
  • @Zack 我有同样的问题,找不到我在此更新之前创建的项目的“引用库”节点。对我有用的解决方案是直接打开(文件>打开文件夹)项目的“src”文件夹。
  • 如果您在显示项目菜单时遇到问题,请双击一个 java 文件(最好是其中包含 main 方法的文件)。有时项目菜单会在工作区被清除后消失。此外,如果您在 Windows 中,则用于 vscode 的 java 类路径工具不喜欢其中带有空格的路径。最好将这些罐子移动到没有空格的路径。见stackoverflow.com/questions/54966653/…
【解决方案2】:

我知道这已经很老了,但它在 Google 搜索结果中的排名仍然很高,很多人可能会发现它。 我只想推荐以下 VSCode 指南,其中包含一小部分但足够包含库的部分:

https://blog.usejournal.com/visual-studio-code-for-java-the-ultimate-guide-2019-8de7d2b59902

答案很简单:

  1. 将 jar 添加到您喜欢的文件夹中,例如项目文件夹中的新目录“lib”。
  2. 在您的.classpath 中添加如下行:&lt;classpathentry kind="lib" path="lib/javaxt-cor.jar"/&gt;
  3. 完成。您可以按照习惯导入它。

【讨论】:

  • 我想提一下,一旦您在 Visual Code 中完成“创建 Java 项目”过程,.classpath 文件就会出现在您的项目工作区中。
【解决方案3】:

将外部jar文件导入java项目,现在在vscode 1.48.2中运行良好,参考以下: https://code.visualstudio.com/docs/java/java-project#_working-with-jar-files

我想说的是,如果你的外部jar路径有中文,即使将jar文件放到项目根目录下的lib目录下,并且项目路径有中文,调试或运行时也会报错像这样的错误信息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

我不知道这个问题是否会出现在其他语言字符中。小心。

【讨论】:

    【解决方案4】:

    您必须安装 Java Dependency Viewer 扩展,这有助于导入 jar 文件并将它们添加到项目的类路径中添加库通过在每个 jar 文件的 &lt;classpath&gt;&lt;/classpath&gt; 标记中使用 &lt;classpathentry kind="lib" path="manual\path\entry\jarfile.jar"/&gt; 标记手动到“.classpath”文件。

    首先你要做的是知道如何在 VS Code 中创建一个合适的 Java“项目”。

    这样做:

    1. 在 VSCode 中打开一个文件夹
    2. Ctrl+Shift+P 打开命令面板
    3. 输入Java: Create New Project
    4. 根据您的要求按照步骤操作并提供项目名称

    然后:展开资源管理器面板中的 Java 依赖项 部分,然后展开您的“项目名称”。

    1. 当您将鼠标悬停在“Referenced Libraries”上时,您会看到“+”符号。点击它。
    2. 它将打开资源管理器。用它来选择你所有的 jar 文件,然后点击“Select Jar Files”按钮。

    就是这样!!!!

    顺便说一下,您可以在以下位置详细查看所有这些内容 https://code.visualstudio.com/docs/java/java-project#_working-with-jar-files ,它对所有相关内容都有清晰的视觉表示。

    编码愉快!!!

    【讨论】:

      【解决方案5】:

      一个糟糕的解决方案,但对我来说它有效。 (假设已安装 maven)。

      找到你的 maven 存储库目录,对我来说是:

      /Users/username/.m2/repository

      然后在包名后面创建所需的路径。 如果您不知道包名称,可以将 .jar 重命名为 .zip 并提取内容。

      还要创建一个版本号,如果你没有,那就补一个。 这是我为 byte-buddy-agent 创建的结构示例,因为它没有 maven sn-p。

      完成后,您编辑 pom.xml 并在以下行中添加一些内容:

      <dependency>
        <groupId>net.bytebuddyagent</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>1.9.8</version>
      </dependency>
      

      保存文件,重新加载更改,然后就可以开始了。 应该在目录中创建一堆文件。

      【讨论】:

      • 在maven repo中添加jar文件,推荐使用mvn install:install-file。你可以参考它的document
      【解决方案6】:

      对于添加外部 Jar 文件,必须为库更改 maven 或 gradle .classpath 文件.. 示例

      <?xml version="1.0" encoding="UTF-8"?>
      <classpath>
          <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
          <classpathentry kind="src" path="src"/>
          <classpathentry kind="lib" path="lib/log4j-1.2.6.jar"/>
          <classpathentry kind="output" path="bin"/>
      </classpath>
      

      但是一个扩展与 vscode-java 冲突。 https://marketplace.visualstudio.com/items?itemName=georgewfraser.vscode-javac .如果您在更改 .classpath 文件后发现错误,请禁用它。你可以检查这个问题 - https://github.com/redhat-developer/vscode-java/issues/956

      【讨论】:

        【解决方案7】:

        反正就是这么简单:

        1. 用java创建项目ctrl+shift+p
        2. 将 jar 文件添加到您的 .classpath
        3. 在您的项目包顶部添加 [app];您的包裹名称
        4. 我们完成了,别忘了刷新它。

        【讨论】:

        • 您在第 1 步和第 2 步之间留下了一个巨大的漏洞。请修改,添加详细信息
        【解决方案8】:

        我将以 Apache Commons Codec http://commons.apache.org/proper/commons-codec/ 为例,从头开始。我已经安装了 Visual Studio Code Java Pack Installer https://code.visualstudio.com/docs/languages/java 并获得了一个新的 VSCode 窗口。

        1. Ctrl+Shift+P 并键入以选择Java: Create Java Project
        2. 为您的项目选择一个文件夹并单击Select the location
        3. 为您的项目命名并按 Enter 键
        4. 在名为 lib 的项目中创建文件夹并从 zip 文件中复制到 commons-codec-1.14 文件夹中。
        5. 打开 .classpath 文件并在节点内添加以下行
          &lt;classpathentry kind="lib" path="lib/commons-codec-1.14/commons-codec-1.14.jar"/&gt;
          注意您可能需要使用 lib 文件的绝对地址。在我第一次去上面的代码工作正常。我的本指南演示项目仅适用于完整路径,例如
          &lt;classpathentry kind="lib" path="C:/Users/tim/Desktop/JavaExample/JavaExample/lib/commons-codec-1.14/commons-codec-1.14.jar"/&gt;
        6. 打开src\App.java文件,在package app;下面添加下面一行import org.apache.commons.codec.binary.Base64;

        然后我可以在 App.java 中运行以下代码

        package app;
        import org.apache.commons.codec.binary.Base64;
        
        
        public class App {
            public static void main(String[] args) throws Exception {
                String message = "Hello World";
                System.out.println(message);
                String encodedMessage = Base64.encodeBase64String(message.getBytes());
                System.out.println(encodedMessage);
        
            }
        }
        

        生产

        Hello World
        SGVsbG8gV29ybGQ=
        

        【讨论】:

          猜你喜欢
          • 2019-10-30
          • 2018-03-19
          • 2017-05-19
          • 2019-03-20
          • 2021-08-24
          • 1970-01-01
          • 2018-03-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多