如何制作支持包的 java 编译器?
How to make a package-supporting java compiler?
有没有什么方法可以在 Batch 中创建一个 java compiler/program 运行ner,它可以自动编译 Java 作为包一部分的源文件?为此,我到处都是堆栈溢出,但一无所获。我目前正在使用记事本++。请注意,我这样做只是为了更好地了解 java 构建过程。
现在,我已经完成了这个基本的 compiler/runner 设置:
javac -d ..\..\bin $(FILE_NAME)
java -classpath ..\..\bin $(NAME_PART)
请注意,我使用的是 Notepad++ 特定的变量,例如 $(FILE_NAME)
和 $(NAME_PART)
。你得到了基本的想法。我确实知道如何从命令行 运行 打包 类 (java 。),但我不知道如何自动化它。我希望它输出这个结果:
javac javac -d ..\..\bin $(FILE_NAME)
java -classpath ..\..\bin [packagenamevariable].$(NAME_PART)
感谢您考虑这个问题!
I have been all over stack overflow for this, and have found absolutely nothing.
那是因为仅使用 BAT 脚本编写通用 Java compile/run 框架真的很难。
而且没有必要。
I am currently using Notepad++, and do NOT wish to change to IDE currently.
没关系。您不必使用 IDE。
相反,您可以安装支持 Java 的构建工具,例如 Ant、Maven 或 Gradle。
(对于库依赖性最小的小项目,Ant 会很好地工作。对于较大的项目,Maven 或 Gradle 会更好。)
因为我觉得比ant
简单多了
一个非常简单的 gradle
设置如下:
.
├── build.gradle
└── src
└── main
└── java
└── com
└── foo
└── bar
└── Main.java
其中 build.gradle
包含
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.foo.bar.Main"
和Main.java
package com.foo.bar;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
安装 gradle
后,您只需调用 gradle run
即可发生以下情况:
$ gradle run
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run
Hello world
BUILD SUCCESSFUL
Total time: 0.836 secs
除了run
还有其他任务。参见 https://docs.gradle.org/current/userguide/application_plugin.html
一个有用的任务是 installDist
,它创建一个 .bat 文件来启动 ./build/install/{projectname}/bin/{projectname}.bat
中的代码。这样你就可以在没有所有 gradle 噪音的情况下启动代码。
也可以使用 gradle 而无需通过 gradle 包装器将其安装在您的系统上:https://docs.gradle.org/current/userguide/gradle_wrapper.html
- 将上面命令中的
gradle
替换为gradlew.bat
- 获取所需文件(
gradlew.bat
和 /gradle/wrapper
中的文件)的最简单解决方案是从某个拥有它们的项目中窃取它们。从 github 中随机选取:https://github.com/quinnliu/sampleGradleProject
有没有什么方法可以在 Batch 中创建一个 java compiler/program 运行ner,它可以自动编译 Java 作为包一部分的源文件?为此,我到处都是堆栈溢出,但一无所获。我目前正在使用记事本++。请注意,我这样做只是为了更好地了解 java 构建过程。
现在,我已经完成了这个基本的 compiler/runner 设置:
javac -d ..\..\bin $(FILE_NAME)
java -classpath ..\..\bin $(NAME_PART)
请注意,我使用的是 Notepad++ 特定的变量,例如 $(FILE_NAME)
和 $(NAME_PART)
。你得到了基本的想法。我确实知道如何从命令行 运行 打包 类 (java 。),但我不知道如何自动化它。我希望它输出这个结果:
javac javac -d ..\..\bin $(FILE_NAME)
java -classpath ..\..\bin [packagenamevariable].$(NAME_PART)
感谢您考虑这个问题!
I have been all over stack overflow for this, and have found absolutely nothing.
那是因为仅使用 BAT 脚本编写通用 Java compile/run 框架真的很难。
而且没有必要。
I am currently using Notepad++, and do NOT wish to change to IDE currently.
没关系。您不必使用 IDE。
相反,您可以安装支持 Java 的构建工具,例如 Ant、Maven 或 Gradle。
(对于库依赖性最小的小项目,Ant 会很好地工作。对于较大的项目,Maven 或 Gradle 会更好。)
因为我觉得比ant
一个非常简单的 gradle
设置如下:
.
├── build.gradle
└── src
└── main
└── java
└── com
└── foo
└── bar
└── Main.java
其中 build.gradle
包含
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.foo.bar.Main"
和Main.java
package com.foo.bar;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
安装 gradle
后,您只需调用 gradle run
即可发生以下情况:
$ gradle run
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run
Hello world
BUILD SUCCESSFUL
Total time: 0.836 secs
除了run
还有其他任务。参见 https://docs.gradle.org/current/userguide/application_plugin.html
一个有用的任务是 installDist
,它创建一个 .bat 文件来启动 ./build/install/{projectname}/bin/{projectname}.bat
中的代码。这样你就可以在没有所有 gradle 噪音的情况下启动代码。
也可以使用 gradle 而无需通过 gradle 包装器将其安装在您的系统上:https://docs.gradle.org/current/userguide/gradle_wrapper.html
- 将上面命令中的
gradle
替换为gradlew.bat
- 获取所需文件(
gradlew.bat
和/gradle/wrapper
中的文件)的最简单解决方案是从某个拥有它们的项目中窃取它们。从 github 中随机选取:https://github.com/quinnliu/sampleGradleProject