Я написал сценарий оболочки (test.sh) с помощью Java. Этот сценарий оболочки фактически выполняет задание на копирование из одного файла в другой. После выполнения сценария оболочки я открыл каталог из консоли и набрал ls
. Он показывает выходной файл с ? после расширения.
Например: foo.csv?
File execFile = new File(file);
FileWriter fwFile;
try {
fwFile = new FileWriter(execFile);
execFile.setExecutable(true);
BufferedWriter bwFile = new BufferedWriter(fwFile);
bwFile.write(strOutput.substring(0, 2));
bwFile.write("\r\n");
bwFile.write("cd " + strOutput);
bwFile.write("\r\n");
bwFile.write("mkdir " + strOutput);
bwFile.write("\r\n");
bwFile.write(strUnixPath);
bwFile.write("\r\n");
bwFile.write("cd " + strWorkingPath + IPlatinumConstants.FS+"lib"+IPlatinumConstants.FS+"Unx");
bwFile.write("\r\n");
bwFile.write("echo Cut Src Start time %time%");
bwFile.write("\r\n");
bwFile.write("cp " + " \"" + strSourceFilePath + "\" \""
+ strOutput + "copy_A\"");
bwFile.write("\r\n");
Я предполагаю, что при создании сценария оболочки с использованием java что-то нужно позаботиться
bwFile.write("\r\n");
замените эти строки на окончания строки UNIX
bwFile.write("\n");
или установите правильный разделитель строк
System.setProperty("line.separator", "\n");
bwFile.newLine()