当我尝试在包内执行Java文件时,集成终端无法找到类文件。我应该如何配置vscode或命令以将软件包自动添加到命令java package.File
或自动搜索类文件中?我在此命令中使用Code Runner
扩展名:"java": "cd $dir && javac -d \"$workspaceRoot/java/bin/\" $fileName && cd \"$workspaceRoot/java/bin/\" && java $fileNameWithoutExt
。当java文件不在软件包中时,此方法有效。
答案 0 :(得分:0)
您需要以java
的身份运行<package>
。ClassName
。例如,如果您的课程如下所示:
package com.something;
class Something {
public static void main(String[] args) {
System.out.println("Hello World");
}
};
然后使用以下命令运行javac
:
javac -d . Something.java
然后,您需要确保java
知道要运行哪个软件包:
java com.something.Something;
换句话说,您需要明确告诉java
主类所在的包。
基本上,您需要在vscode内创建另一个变量,该变量允许您将 package 添加到命令的开头:
"java": "cd $dir && javac -d \"$workspaceRoot/java/bin/\" $fileName && cd \"$workspaceRoot/java/bin/\" && java $filePackage.$fileNameWithoutExt
不幸的是,看起来https://github.com/formulahendry/vscode-code-runner并没有定义Java包变量,因此您必须通过下载包的源代码并对其进行修改或从中请求一个变量来创建它软件包作者位于https://github.com/formulahendry/vscode-code-runner/issues
更新:
在CodeRunner软件包https://github.com/formulahendry/vscode-code-runner/issues/118中,这似乎已经成为问题。您可能希望观看此问题以获取更新,并在扩展修复后对其进行升级。
作为一种临时的解决方法,我认为不为您的主类指定程序包就可以。无论如何,所有其他类都将使用import
,所以这些都没关系,但是将您的主类保留在顶级包中,并且VSCode Code Runner应该可以正常工作。