我检查了这个问题和许多其他帖子来帮助我解决问题,但没有任何效果。
我试图用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项目的引用库感到困惑。以下是问题摘要:
如何使用相对路径添加库到基于项目根文件夹的Java项目?
- 使用
. classpath
文件添加库和通过修改settings.json
文件之间有什么区别?哪一个会赢? - 如何添加一个包含所有JAR文件的文件夹作为Java项目的引用库?这是为了避免一次添加一个文件。
- 为什么
. classpath
和. project
文件没有显示在vscode资源管理器视图中?它只会在您从Windows文件资源管理器中打开vscode中的文件时显示。 - 我找到了命令
配置类路径
,但它是只读的,我认为它与. classpath
文件相同。有没有办法从vscode UI更改它? - 当我删除
. classpath
文件时,或者当我从. classpath
文件中删除classpathentry
行时,vscode视图中JAVA PROJECTS
下的节点'引用库(只读)'被删除。为什么啊?
有关更多详细信息,请参阅下面的快照。
我感谢你的帮助。
匿名用户
@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 Workspace
和Clear Workspace
选项来排除故障并尝试解决错误。
最后,您可以从JAVA项目
视图上的选项导出JAR。此选项不清楚,看起来像和指向右侧的箭头|--
我希望这有帮助,如果你有任何问题,请发表评论,我会尽可能回答。
基本上说,java扩展从引用的库中查找JAR。
以下是我对你们问题的回答:
>
右键单击jar并选择复制相对路径
,然后将其添加到设置中,单击刷新按钮,然后添加的jar应显示在引用库选项下:
CLASSPATH变量是告诉应用程序(包括JDK工具)在何处查找用户类的一种方法。在添加JAR时,设置java.project.referencedLibraries
wins。
无法选择jar文件夹,但您可以使用键盘快捷键选择所有jar,然后添加它们。
有一个名为“java.configuration.checkProjectSettingsClusions”
的设置,默认情况下为true,因此.project
和和
我的猜测是,当你们打开一个新项目时,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(”的一切,尤其