VScode+Java配置与使⽤的详细步骤
⽬录
1 vs code
2 java
总结
1 vs code
也是刚刚接触 vs code,但是⼀见钟情。
最近在试着使⽤ nim language,推荐⽤ vs code,就试⽤了⼀下,然后⼀发不可收拾。于是有了⼀个⼤胆的想法,⼲脆全部转到 vs code 上来吧,现在的情况是什么呢?前段⽤ webstorm/sublime,java ⽤ idea,python ⽤ PyCharm, ruby ⽤RubyMine, c# ⽤ vs express,多⿇烦啊。
vs code 其实就是的编辑器,是个马甲,但是各种语⾔都可以实现对应的插件,包装成⼀个 ide,这很好,很先进!最最最关键的是,开源,免费!
1.1 什么是 IDE
集成开发环境(IDE,Integrated Development Environment )是⽤于提供程序开发环境的应⽤程序,⼀般包括代码编辑器、编译器、调试器和图形⽤户界⾯等⼯具。集成了代码编写功能、分析功能、编译功能、调试功能等⼀体化的开发软件服务套。
如微软的Visual Studio系列,作为 c++/c# IDE;
Java 的 IDE 如 Eclipse 和 IntelliJ IDEA。
1.2 VS code 是个编辑器
vs code 并不是⼀个 IDE,它是个编辑器,是个有理想的编辑器,可以通过相应语⾔的插件,将其包装成⼀个 IDE。
vi 也是⼀个编辑器,很多程序员就是使⽤ vi 来做开发,构建⽤独⽴的⼯具,⽐如 make,ant,maven,gradle 等等。ctags ⽤来对源代码中的符号建索引。。。。
那么对于程序员来说,怎样的编辑器来算是好⽤的呢?
1. 打开⽂件,⽅便快捷,语法⾼亮,美观!
2. 编辑:增删改查,丰富快捷
3. 符号:符号定义查询、跳转,符号引⽤….
4. 依赖管理:⾃动导⼊依赖包
5. 分析:类结构,继承关系…….
6. ⾃动提⽰ …..
7. 其他⾼级特性。。。
上述特性⾥⾯,有些是 vs code 可以做的,有些是必须由插件来完成的。⽐如符号和依赖管理等跟语⾔特征相关的,那就必须由相应语⾔的插件来完成,你不能在使⽤ vs code 时,因为代码⽆法跳转到definition,就骂 vs code 不智能。
2 java
尽管 idea 体验也很不错,但有时还是感觉太臃肿了,不够流畅。
当然,必须承认 vs code 肯定⽆法匹敌 idea 所提供的完整特性,对于初学者来说,idea/eclipse 绝对是
必经之路。然⽽,作为程序员,我们也必须清楚,设计是⼀种取舍,idea 提供的⽆微不⾄的保姆⼀般的图形界⾯,终将会显得友好但啰嗦,会有那么⼀天,你成熟了,长⼤了,就嫌她啰⾥啰嗦了。
2.1 java support extensions
按照官⽅⽂档,⽼⽼实实的安装好 java 相关的 extensions。
简单来说:
VS Code Java IDE =
编辑器:vs code
构建⼯具: maven/gradle
语⾔⽀持:Eclipse ™ JDT Language Server
2.2 Language Support for Java(TM) by Red Hat
有些功能如:
代码补全: code completion
⾃动导⼊: organize imports
代码跳转: code navigation
等等!很显然,vs code 不会提供这些语⾔级别的特性,这也是为什么 JetBrains 有那么多产品的原因:
IntelliJ IDEA - ⼀套智慧型的Java整合开发⼯具,特别专注与强调程序师的开发撰写效率提升
PHPStorm 7.0 发布,PHP 集成开发⼯具
PyCharm 3发布,智能Python集成开发⼯具
RubyMine -RubyMine 是⼀个为Ruby 和Rails开发者准备的IDE,其带有所有开发者必须的功能,并将之紧密集成于便捷的开发环境中。
WebStorm8.0 发布,智能HTML/CSS/JS开发⼯具
vs code 通过 extension 来提供相应的 IDE 特性,对于 Java 来说,Language Support for Java(TM) by Red Hat 这个extension 就是⼲这个事情的。
Provides Java ™ language support via Eclipse ™ JDT Language Server, which utilizes Eclipse ™ JDT,
M2Eclipse and Buildship.
2.3 什么是 JDT
JDT 叫做 Eclipse Java Development Tools
The JDT project provides the tool plug-ins that implement a Java IDE supporting the development of any Java
application,
再看看 JDT core 都提供了哪些 vs code 需要扩展的功能:
1. A Java Model that provides API for navigating the Java element tree. The Java element tree defines a Java centric view
of a project. It surfaces elements like package fragments, compilation units, binary classes, types, methods, fields.
2. A Java Document Model providing API for manipulating a structured Java source document.
3. Code assist and code select support.
4. An indexed based search infrastructure that is used for searching, code assist, type hierarchy computation, and
refactoring. The Java search engine can accurately find precise matches either in sources or binaries.
5. Evaluation support either in a scrapbook page or a debugger context.
6. Source code formatter
需要注意的是,该 extension 使⽤了 Eclipse IDE 相关的实现。当⽣成⼀个新的 java 项⽬时,⽐如通过 mvn 来 generate ⼀个HelloWorld 项⽬:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-
archetype-quickstart -DarchetypeVersion=1.3
然后⽤ vs code 打开项⽬⽬录,会看到项⽬⽬录中会随之⽣成⼏个⽂件和⽬录:
1 .settings
1.prefs
eclipse.preferences.version=1
1.prefs
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
2 .project
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>spring-ldap-user-admin-sample</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name&javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name&aven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature&javanature</nature>
<nature&aven2Nature</nature>
</natures>
</projectDescription>
3 .classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
pycharm安装教程和使用
</attributes>
</classpathentry>
<classpathentry kind="con" path="lipse.jdt.launching.JRE_lipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">    <attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="lipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
要注意:这些⽂件都是 extension ⾃动⽣成的,如果⽬录下没有⽣成相应的⽂件,那么就会出现各种问题,jdt 相关的很多功
能⽆法正常使⽤,⽐如符号跳转,⾃动导⼊等。
如果⽤ IDEA 打开 java 项⽬,同样会创建类似的⽂件,只不过结构和名称不⼀样⽽已。
2.4 Java Classpath is incomplete. Only syntax errors will be reported
如果碰到该警告信息,说明 java 项⽬在打开过程中出问题了,缺少 .classpath .project ⽂件。有可能是以下原因,⽐如:jdt 相关的 extentsions 没有安装
java 环境没有按官⽅说明配置
extension 配置不完整
这种情况下,符号跳转,⾃动补全,导⼊等等功能,肯定⽆法正常使⽤。
但是使⽤ mvn 进⾏构建是没有问题的,⼀定要清楚,mvn 是构建⼯具,只要源码完整正确,有 l ⽂件,那么 maven 就能正常⼯作。
另外,发现当项⽬同时⽀持 maven 和 gradle 时,vs code 创建项⽬会失败,导致 classpath 相关⽂件⽆法产⽣。这个时候将adle 删掉,只留下 l ⽂件,再次打开项⽬⽂件夹,就可以了。
2.5 项⽬结构
如上图,正常启动的java项⽬,需要包含
JAVA PROJECTS
MAVEN PROJECTS
JAVA DEPENDENCIES
其中 Java Projects 中包含 .classpath, .project, .settings
总结
总之,⽤ vs code 来作为 java ide 完全没有问题,使⽤过程中难免会碰到些问题,多查阅,多思考,应该能解决。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。