Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作一个支持java编译器的包?_Java_Batch File_Package_Notepad++ - Fatal编程技术网

如何制作一个支持java编译器的包?

如何制作一个支持java编译器的包?,java,batch-file,package,notepad++,Java,Batch File,Package,Notepad++,有没有办法批量创建一个java编译器/程序运行程序,可以自动编译作为包一部分的java源文件?我已经为此检查了所有的堆栈溢出,但没有发现任何东西。我目前正在使用记事本++。请注意,我这样做只是为了更好地理解java构建过程 现在,我已经设置了这个基本的编译器/运行程序: javac -d ..\..\bin $(FILE_NAME) java -classpath ..\..\bin $(NAME_PART) 请注意,我使用的是记事本++特定的变量,如$(文件名)和$(名称部分)。不过你知道基

有没有办法批量创建一个java编译器/程序运行程序,可以自动编译作为包一部分的java源文件?我已经为此检查了所有的堆栈溢出,但没有发现任何东西。我目前正在使用记事本++。请注意,我这样做只是为了更好地理解java构建过程

现在,我已经设置了这个基本的编译器/运行程序:

javac -d ..\..\bin $(FILE_NAME)
java -classpath ..\..\bin $(NAME_PART)
请注意,我使用的是记事本++特定的变量,如
$(文件名)
$(名称部分)
。不过你知道基本的想法。我确实知道如何从命令行(java.)运行打包类,但我不知道如何使其自动化。我希望它输出以下结果:

javac javac -d ..\..\bin $(FILE_NAME)
java -classpath ..\..\bin [packagenamevariable].$(NAME_PART)
谢谢你考虑这个问题

我已经为此检查了所有的堆栈溢出,但没有发现任何东西

这是因为仅使用BAT脚本编写通用Java编译/运行框架非常困难

而且没有必要

我目前正在使用记事本++,不希望当前更改为IDE

那很好。您不必使用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
除了运行
外,还有其他任务。看

一个有用的任务是
installDist
,它创建一个.bat文件来启动
/build/install/{projectname}/bin/{projectname}.bat
中的代码。这样你就可以在没有梯度噪声的情况下启动代码

通过使用gradle包装器,也可以使用gradle而无需在系统上安装:

  • 将上述命令中的
    gradle
    替换为
    gradlew.bat
  • 获取所需文件(
    gradlew.bat
    /gradle/wrapper
    中的文件)的最简单解决方案是从拥有它们的项目中窃取它们。从github随机选取:

如果您想将编译和运行限制在一个包中(我想这个包是一个更大项目的一部分),可以使用Ant脚本。如果是整个项目,我会建议与Maven合作。非常感谢。我对Ant有过一些了解,但我从未真正理解过它与编译的关系。而且,我找不到一种方法来自动创建xml文件。谢谢你;我可能会问另一个关于Ant的问题。如果您想自动创建“build.xml”文件,请使用IDE:-)。谢谢,这很好。我已经看了Gradle教程一段时间了,但我对Gradle的工作有点困惑。这很有帮助。