Co D wW języku java -D co oznacza skrót D?
-Dproperty=value
ustawić wartość właściwości systemu.
z java application launcher oznaczać? Z jakiegoś powodu denerwowało mnie, dlaczego D?
Co D wW języku java -D co oznacza skrót D?
-Dproperty=value
ustawić wartość właściwości systemu.
z java application launcher oznaczać? Z jakiegoś powodu denerwowało mnie, dlaczego D?
Zawsze zakłada się, że było określić wartość nieruchomości ... prawdopodobnie pozostałością z kompilatory C, które często korzystają z -D
jako podobny do #define
w kodzie.
EDIT: Najbliżej mam do źródła na to w tej chwili jest some JDK 1.1 documentation który określa flagę jako:
przedefiniowuje wartość nieruchomości. propertyName to nazwa właściwości, której wartość chcesz zmienić, a newValue to wartość, na którą chcesz ją zmienić. [...]
że przynajmniej zawiera słowo "przedefiniowania", który znajduje się blisko "zdefiniować" :)
Powodem jest D oznacza DEFINE, bo co to przełącznik poleceń ma definiuje zmienne.
To może być dla Define
, bo są zdefiniowaniu właściwości
w C/C++ kompilatory podobna składnia służy do definiowania makr preprocesora z wiersza poleceń:
#include <stdio.h>
int main(int argc, char* argv[]) {
printf(GREETING);
return 0;
}
.
gcc hello.c -DGREETING="\"Hello, world\""
Java nie posiada preprocesora, ale właściwości zdefiniowane z -D
ofter są stosowane do podobnego powodu - aby zdać jakiś program specyficzne informacje o bieżącym środowisku. Jedyna różnica polega na tym, że w Javie przekazujemy je w czasie wykonywania, a nie w czasie kompilacji:
public class Hello {
public static void main(String[] args) {
System.out.println(System.getProperty("greeting"));
}
}
.
java -Dgreeting="Hello, world" Hello
Myślę, że to podobieństwo jest źródłem podobnej składni.
Dzięki za szczegóły C/C++, ma sens, że -D został przeniesiony z tego miejsca. – septerr
Chciałbym zobaczyć źródło tego, jeśli istnieje. – kurtzbot
Cześć Jon, nie jest to całkowicie związane z tym pytaniem, ale nie mogę znaleźć tej informacji nigdzie indziej, czytałem w dokumentach: https://docs.oracle.com/javase/7/docs/technotes /tools/windows/java.html 'java -Dmydir =" jakiś ciąg "SomeClass' część' SomeClass' do której klasy się odnosi? Używam go, aby uzyskać zewnętrzny plik '.properties', modyfikujący niektóre atrybuty w moim programie, używając Spring, Struts2 i Tomcat 8.5. Myślę, że odnosi się to do klasy z metodą "główną", ale w moim przypadku żadna metoda "main" nie istnieje, ponieważ jest to aplikacja internetowa, czy mógłbyś mi to wyjaśnić? – Frakcool
@Frakcool: Tak, to punkt wejścia do procesu. Kiedy uruchamiasz Tomcat, generalnie nie wywołujesz go w ten sposób. Proponuję zadać nowe pytanie z większą ilością szczegółów na temat tego, o co prosisz. –