繁体   English   中英

如何在 sublime text 3 中为 java 构建系统,它也支持包?

[英]how to build system in sublime text 3 for java which also supports packages?

我已将所有 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时,例如: package name_of_1st_project; in my java source code, then i get build error that " Could not find or load main class name_of_1st_project. Caused by: java.lang.NoClassDefFoundError: name_of_1st_project/name_of_1st_project (wrong name: name_of_1st_project) "

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

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

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

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

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

将 sublime 构建文件更改为:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM