2015-10-27 3 views
0

Я хочу сделать инструмент, который может генерировать и компилировать Java исходный код и создать банку файл из него:JavaCompiler путь к классам для Windows против Linux

Для этого я использую JavaCompiler:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 

Когда я добавить к классам Java SystemCompiler:

optionList.addAll(Arrays.asList("-cp", classpath)); 

это работает для Windows, когда я настроить мой путь к классам с «;» в качестве разделителя:

classpath = "jar1.jar;jar2.jar;dir/jar3.jar;dir/jar4.jar"; 

В Linux это не удается.

Когда я использую пространство вместо; например:

classpath = "jar1.jar jar2.jar lib/jar3.jar lib/jar4.jar"; 

не работает для обеих систем.

То же самое относится:

classpath = "lib/*" 

мне нужно было решение, которое может генерировать систему рабочего пути к классам самостоятельно.

UPDATE (решение):

Ok я узнал, что есть Java предлагает

File.pathseparator 

Какие изменения, соответствующие среде системы.

Смотрите также File.separator or File.pathSeparator

ответ

2

В Linux вы должны использовать :

CLASSPATH = path1: path2: ...

Oracle документация:

Linux

Windows

1

Используйте : на linux вместо ;, что вы регулярно используете на окнах.

+0

Есть ли вероятность, что я могу создать рабочую систему СР независимо? – Gobliins

+0

Просьба уточнить ваш вопрос. Вы хотите, чтобы вы создавали скрипт, который работает на любой платформе, и генерирует путь к классу, следуя правилам текущей платформы? – AlexR