2009-12-13 1 views
2

Это вопрос экзамена scjp mock.Использование ":" и "." в вызове java с объявлением pathpath

Предположим, у меня есть следующие два файла:

package pkg; 

public class Kit { 
    public String glueIt (String a, String b) {return a+b;} 
} 

import pkg.*; 

class UseKit { 
    public static void main(String[]args) { 
     String s = new Kit().glueIt(args[1],args[2]); 
     System.out.println(s); 
    } 
} 

И следующую структуру каталогов:

test 
    |--UseKit.class 
    | 
    com 
    |--KitJar.jar 

текущий каталог test и файл pkg/Kit.class в KitJar.jar

По ответ, вызов java, который производит выход bc, равен

java -classpath com/KitJar.jar:. UseKit a b c 

Пожалуйста, объясните использование операторов «:» и «.».

+1

Эти вопросы действительно появляются в SCJP? (Я сделал только бета-версию 1.5). Это вне языка и библиотек, зависит от платформы, и вы ожидаете, что она будет полностью IDEd. (Является ли IDEd ни слова?) –

+0

Да, этот вопрос из книги Кэти Сьерра. Глава 10, Разработка. – andandandand

ответ

18

: является разделителем для записей в пути Java classpath. . означает «текущий каталог». Таким образом, classpath com/KitJar.jar:. означает поиск файлов классов Java в двух местах: com/KitJar.jar и текущий каталог.

+9

Двоеточие ':' является, кстати, специфичным для linux/unix. В Windows используется точка с запятой ';'. – BalusC

+3

":" подходит для * nix машин; его ";" для Windows. – duffymo

+3

@Asap Конечно, но скажите, как вы это делаете в командной строке? :) –

6

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

Для получения дополнительной информации, включая описание пути класса подстановочных знаки, а также подробное описание о том, как очистить переменные окружения CLASSPATH см Setting the Class Path технической записки (и/или Setting the Class Path для * NIX версии).

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

  • Нет связанных вопросов^_^