我将如何使用命令行(不使用其他软件)编译两个类并将参数传递给它?
我为自己创建了一个sources.txt
文件,其中包含每个类所在的定义。我通过使用以下命令
dir /s /B *.java > sources.txt
然后我尝试做javac @sources.txt
,尽管那样并没有帮助,因为我遇到以下错误:
error: invalid flag: C:\Users\Adrian
Usage: javac <options> <source files>
use --help for a list of possible options
此外,我的路径在用户名之后确实包含一个空格。阿德里安$。因此,在sources.txt中,它看起来像这样:C:\Users\Adrian $\
我确实尝试在引号或百分号两边加上引号,但随后出现错误,指出找不到该文件。
完整的主要代码:
package me.adrian;
import java.io.FileNotFoundException;
public class Main {
public static void main(String[] args) {
CSVoperator CSVfile = new CSVoperator();
try {
CSVfile.readCSV(args); //get args into there.
}
catch (FileNotFoundException e){
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
您可以通过在on命令中指定多个名称来直接编译
javac file1.java file2.java
或通过使用*
,将编译当前目录中的所有.java
文件
javac *.java
答案 1 :(得分:0)
由于您的路径包含空格,因此必须加引号。您可以通过循环遍历sources.txt
并引用整行来做到这一点:
FOR /F %%i IN (sources.txt) DO "javac %%i"
或者您可以尝试dir /x
生成sources.txt
,并按照dir docs
/ x
显示为非8dot3文件名生成的简称。显示与/ n相同,但是在长名称之前插入了短名称。
一种或多种方式,在Windows Batch sux中编写脚本。