用VSCode写Java的艰辛过程(笑)

-1. 首先之前…

因为以后大概不会用java写代码所以坚持不安装java的ide.

0. 首先…

  • vscode 安装插件 Java Extension Pack
  • vscode 安装插件 Code Runner

在vscode的用户设置里, 我添加了这两项

 "code-runner.runInTerminal": true,
 "code-runner.clearPreviousOutput": true,

然后写好代码, 右键run就可以运行了…


1. 找不到javac ?

先卸载并重新安装 Java & JDK,
注意: 不要安装在同一个目录, 否则会导致找不到 javac.exe
参考问题: https://www.zhihu.com/question/28428426

然后添加环境变量:
添加环境变量

2. 编码GBK的不可映射字符?

注释中出现了中文于是无法编译…
在javac编译命令后应该指出编码: javac -encoding utf-8 …
于是修改用户设置

"code-runner.executorMap": {
        "java": "cd $dir && javac -encoding utf-8 $fileName && java $fileNameWithoutExt"
    },

继续开心的写代码, 然后又出现了问题…

3. 错误: 找不到符号…

为了更好地组织类(笑), 我将当前项目的所有代码组织在同一个package中,
package TradeSystemDemo;
并且将他们放在对应的目录下:
目录
如果这个时候, 右键Main并Run Code, 会找不到Console等其他类…提示 ‘错误: 找不到符号’.
检查vscode终端的命令, 会发现cd进入了package所在的文件夹, 所以编译会出错.
在这里插入图片描述
所以应该在项目根目录上执行javac命令, 所以在vscode的工作区设置中加上: (用户设置是全局的, 工作区设置只针对当前工作区)

"code-runner.executorMap": {
        "java": "cd $workspaceRoot && javac -encoding utf-8 -d . TradeSystemDemo/Main.java && java TradeSystemDemo/Main",
    }
  1. 第一个命令
    cd $workspaceRoot
    使进入工作区根目录.
  2. 然后是编译命令,
    javac -encoding utf-8 -d . TradeSystemDemo/Main.java
    (以上设置放在工作区的原因就是每个项目的Main.java的路径不一样…取决于它放在哪个package文件夹下)
  3. 最后是运行程序的命令
    java TradeSystemDemo/Main
    现在就可以在Vscode中右键任意代码并Run Code了.

然而…

4. 如果要打包成jar

这里参考了 http://it-easy.tw/java-jar/ .
对于我的项目, 打包Jar的命令如下, 这也是在工作区根目录上执行的:
jar cvfm TradeSystem.jar Manifest.MF TradeSystemDemo/*.class
于是我写了一个bat, 完成编译和打包jar

javac -encoding utf-8 -d . TradeSystemDemo/Main.java
jar cvfm TradeSystem.jar Manifest.MF TradeSystemDemo/*.class
pause

把这个bat放在工作区根目录上, 写好代码后运行就好了.
如果要运行打包后的jar文件的话…也用一个bat就好了

java -jar TradeSystem.jar
pause

一天下午就这么过去了…真想用C#啊可是实验课要求用java…明天就把这个实验做完吧…

  • 19
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值