2013-09-15 2 views
0

Я пытаюсь запустить java-программу, которая принимает «~» тильду в качестве аргумента командной строки. К сожалению, когда я запускаю программу, я получаю мой домашний каталог, который мне не нужен. Я не уверен, как я могу добиться того же?Передайте специальную переменную (~ tilde) в программу Java

public class Test { 

     public static void main(String[] args) { 
       System.out.println(args[0]); 
     } 

} 
+0

Я не хочу менять способ передачи аргумента. Его фиксированный – AnujKu

ответ

8

Поместите тильды в одинарные кавычки:

java mypackage.MyClass '~' 

Я предполагаю, что вы используете Баш оболочку, в этом случае ~ автоматически расширяется в ваш домашний каталог. Помещение в одинарные кавычки говорит оболочке не расширять ее.

+2

или префикс тильды с обратной косой чертой (один символ меньше: P) –

+0

Я не хочу менять способ передачи аргумента. Его фиксированный – AnujKu

+12

@WarriorPrince, 'java' никогда не видит' ~ 'из-за расширения [tilde] (http://www.gnu.org/software/bash/manual/bashref.html#Tilde-Expansion), поэтому ваш единственный вариант (за исключением ужасного хакера) - правильно передать аргументы командной строки. –

Смежные вопросы