java - 如何在 Sublime Text 3 for java 中构建也支持包的系统?

标签 java regex cmd sublimetext3 sublime-build

我已将所有 java 项目存储如下:

C:\Users\swagat\Documents\JavaProjects\name_of_1st_project\all_source_files.java C:\Users\swagat\Documents\JavaProjects\name_of_2nd_project\all_source_files.java C:\Users\swagat\Documents\JavaProjects\name_of_3rd_project\all_source_files.java C:\Users\swagat\Documents\JavaProjects\name_of_4th_project\all_source_files.java

我希望你理解层次结构。

现在我正在尝试在 Sublime Text 3 中制作一个构建系统,只需单击一下即可编译和运行任何 java 程序。

我的构建系统包含:

{
    "shell_cmd": "javac $file && java $file_base_name"
}

我还设置了 CLASSPATH 环境变量以指向 C:\Users\swagat\Documents\JavaProjects

我不想为每个项目设置不同的 CLASSPATH

如果我不在 java 源代码中使用 package,则上述设置有效

但是当我使用包时,例如: package name_of_1st_project; 在我的 java 源代码中,然后我收到构建错误“无法找到或加载主类 name_of_1st_project。 引起原因:java.lang.NoClassDefFoundError:name_of_1st_project/name_of_1st_project(错误名称:name_of_1st_project)

为了解决这个问题,我将构建文件修改为:

{
    "shell_cmd": "javac $file && java $file_base_name.name_of_1st_project"
}

它解决了问题,但仅限于第一个项目。

我想使用正则表达式或任何可以在 sublime 构建系统文件末尾附加“.name_of_nth_project”的方式使其动态化。 我阅读了 sublime 文档,发现没有可以使用的具有当前文件夹名称(只是名称,不包括路径)的变量。

我搜索了整个互联网,但没有找到确切的解决方案。请帮忙。(也许我的评论可以帮忙)

最佳答案

将 sublime 构建文件更改为:

{
    "shell_cmd": "javac $file && java $file_base_name.$file_base_name"
}

但文件夹名称和包名称应与包含main方法的文件名称相同。

关于java - 如何在 Sublime Text 3 for java 中构建也支持包的系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61655596/

相关文章:

java - 如何在真实的Web容器中使用Mockito来模拟一些接口(interface)

windows - 为什么 Perl 系统调用无法调用内部 Windows 命令?

Powershell即使将openssl添加到系统路径中也无法识别openssl

windows - ActivePerl。 .pl 文件不再执行,而是在记事本中打开

java - 使用 Java 交替阶乘项

java - 如何理解泛型方法中选择了什么类型而不是T?

java - 如何从 Java 备份 mysql 数据库?

java - 使用正则表达式的 JSP 文本处理

Java:使用定界符摆脱大写字母单词?

python - 使用 python 正则表达式匹配 url 中的类别?