前提条件:在 VS Code 中,您需要打开文件夹而不仅仅是文件,以便于编译、运行、调试和测试包含任何 jar 文件。
VSCode 与 Maven 或 Gradle 配合得很好,如果我们正在使用其中任何一个,请使用 Maven 或 Gradle 进行依赖管理。
如果您没有使用任何依赖管理,则有两个选项来添加 jar 文件。
打开 .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"
]
}
如果启用了Java扩展,则在左侧面板上会显示Java依赖项。
在其中,您可以单击+
符号添加自定义jar文件。 使用此方法,settings.json
文件也将被更新。
VSCode与Maven或Gradle配合使用效果良好。 但是没有这些工具时,据我所知,他们没有提供任何直接的方法来将jar文件添加到类路径中。
解决方法是手动在.classpath
文件中添加条目。
例如,在下面的文件中,我手动添加了位于lib
目录中的common-logging-1.2.jar
,通过添加一行<classpathentry exported="true" kind="lib" path="lib/commons-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”节点并单击+图标。
VSCode
(2022)安装Java扩展包,需要重启VSCode
。
创建如下结构
.vscode/
| -- settings.json
bin/
lib/ <-- Add here all the .jar files
src/ <-- Add here you java source code
因此,项目结构应该像这样:
settings.json
中{
"java.project.sourcePaths": [
"src"
],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar",
]
}
{ "java.project.sourcePaths": [ "src" ], "java.project.outputPath": "bin", "java.project.referencedLibraries": [ "lib/**/*.jar", ] }
java.project.sourcePaths: 您的Java源代码路径
java.project.outputPath: 二进制输出路径
java.project.referencedLibraries: .jar
文件路径
现在,请重新启动 vscode
,如果仍有错误,则可能需要清除Visual Studio Code中的文件内容缓存
现在,您应该能够在引用库列表中看到该库。 (注意:这可能会在未来的 vscode 版本中更新,如名称、位置等)
java.project.sourcePaths
,但被忽略了。请问能否提供帮助? https://stackoverflow.com/questions/74545754/failed-to-get-sources-when-debugging-multi-module-maven-project-in-vscode - tarekahf我知道这篇文章已经很老了,但它在谷歌搜索结果中排名很高,很多人可能会找到它。 我只想推荐以下关于VSCode的指南,其中包括一个小而足够的部分来包含库:
https://blog.usejournal.com/visual-studio-code-for-java-the-ultimate-guide-2019-8de7d2b59902
答案非常简单:
.classpath
中添加一行类似于: <classpathentry kind="lib" path="lib/javaxt-cor.jar"/>
。.classpath
文件会出现在您的项目工作区中。 - harperville<classpath></classpath>
标记内使用<classpathentry kind="lib" path="manual\path\entry\jarfile.jar"/>
标记手动将库添加到“.classpath”文件中。Java: Create New Project
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
我不知道这个问题是否出现在其他语言字符中,请小心。
无论如何都很简单:
.classpath
中我没有阅读这里的每一个答案,但它们似乎都与我看到的界面不符。我四处查看并注意到在左侧窗格底部,在“OUTLINE”和“TIMELINE”下面,有一个“JAVA PROJECTS”手风琴菜单。当我悬停在上面时,会出现一个省略号,点击它会弹出一个菜单,其中包含选项:“配置类路径”。选择它会弹出一个窗口,最后一节是“引用库”,您可以从文件系统中添加jar。
如果没有使用Maven或Gradle,想要添加外部Jar文件,则必须更改.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>
/Users/username/.m2/repository
然后根据包名创建所需的路径。
如果您不知道包名,可以将.jar
重命名为.zip
并提取内容。
同时创建一个版本号,如果没有,请自己编一个。
这是我为 byte-buddy-agent
创建的结构示例,因为它没有 Maven 片段。
完成此操作后,您需要编辑pom.xml
并添加以下内容:
<dependency>
<groupId>net.bytebuddyagent</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>1.9.8</version>
</dependency>
我将使用Apache Commons Codec http://commons.apache.org/proper/commons-codec/作为示例,从头开始。我已经安装了Visual Studio Code Java Pack Installer https://code.visualstudio.com/docs/languages/java并打开了一个新的VSCode窗口。
Java: Create Java Project
Select the location
<classpathentry kind="lib" path="lib/commons-codec-1.14/commons-codec-1.14.jar"/>
<classpathentry kind="lib" path="C:/Users/tim/Desktop/JavaExample/JavaExample/lib/commons-codec-1.14/commons-codec-1.14.jar"/>
package app;
行下面添加以下行:import org.apache.commons.codec.binary.Base64;
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=