- Die VM befindet sich auf einer Maschine, auf der keine IDE installiert ist
- Der Aufruf des Servers erfolgt durch ein Script und kann nur umständlich in der IDE nachgestellt werden
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=y
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=y
private void f(List<String> l) { // TODO } List<String> l = Collections.emptyList(); f(l);Wird die leere Liste aber direkt verwendet, schlägt die Typ-Inferenz mit der Fehlermeldung "The method f is not applicable for the arguments List<Object>" fehl:
f(Collections.emptyList());Die Lösung ist, hier einen Type-Witness einzusetzen:
f(Collections.<String>emptyList());
Um eine CIFS Verbindung über einen SSH Tunnel zu fahren, muss zuerst der SSH Tunnel aufgebaut werden. Dabei sollte statt des veralteten Port 139 der aktuellere Port 445 verwendet werden, da es ansonsten zu Problemen kommen kann.
Der Aufbau der SSH Verbindung kann auf unterschiedliche Weise geschehen. Die einzelnen Verfahren haben dabei Vor- und Nachteile.
ssh -N -L 10445:10.5.107.32:445 user@jumpserver
ssh -f -N -L 10445:10.5.107.32:445 user@jumpserver
ssh -f -N -M -S-L 10445:10.5.107.32:445 user@jumpserver
ssh -f -L 10445:10.5.107.32:445 user@jumpserver sleep 60
Sobald die Verbindung steht, kann man dann einen CIFS Mount durchführen:
mount -t cifs //WINSERVER/SHARE /mnt/ -o user=winuser,port=10445,ip=127.0.0.1,domain=windomain
set define off;abgeschaltet werden. Dies ist insbesondere dann von Interesse, wenn ein zu prüfender String ein & Zeichen enthält.
Häufig werden eher Bind-Variables benötigt. Diese werden als Name mit einem : als Prefix gekennzeichnet (z.B. :foo). Für diese wird einmal der benötigte Wert angefragt und dann an allen Stellen der Query eingefügt.
Beispiel:
select :foo, :foo || :foo from dual;
Class<?> genClazz = Class.forName(className); Class<? extends XYZ> clazz = genClazz.asSubclass(XYZ.class); Constructor<? extends XYZ> ctor = clazz.getConstructor(String.class, Integer.TYPE); XYZ var = ctor.newInstance("bla", 10);
Im internen Netzwerk kann die temporäre IPv6 Adresse eher stören, wenn Dienste diese per DNS Request versuchen aufzulösen, da sie nicht im DNS eingetragen wird. Daher kann es, um Wartezeiten zu vermeiden, praktisch sein, diese abzuschalten.
Hierzu müssen in einer Admin-Shell folgende Befehle eingegeben werden:
netsh interface ipv6 set privacy state=disabled store=active netsh interface ipv6 set privacy state=disabled store=persistent netsh interface ipv6 set global randomizeidentifiers=disabled store=active netsh interface ipv6 set global randomizeidentifiers=disabled store=persistentNach einem Reboot sollten keine neue temporären IPv6 Adressen erstellt werden. Quelle: https://knowledge.zomers.eu/misc/Pages/How-to-disable-temporary-IPv6-address-allocation-at-a-Windows-PC.aspx