У меня есть виртуальная машина сервера Ubuntu (myapp01
), и на ней развернуто приложение Java. Приложение ведет себя шатко, и я хотел бы профилировать его с помощью JVisualVM. Для этого мне нужно установить X-Windows на моем хосте с Windows 7, а затем заставить виртуальную машину Ubuntu экспортировать свое соединение X11 на мой хост, когда я скажу ей запустить JVisualVM на виртуальной машине.
Итак, я начал с загрузки XMing здесь:
http://sourceforge.net/projects/xming/files/Xming/6.9.0.31/Xming-6-9-0-31-setup.exe/download
Я использовал все параметры установки по умолчанию/рекомендуемые, включая использование обычного сеанса PuTTy и разрешение общедоступного и частного доступа к сети. После установки XMing я запустил его и убедился, что он работает на моем хосте Windows. Затем я открыл Cygwin и подключился к серверу Ubuntu по SSH:
$ ssh myuser@myapp01
myuser@myapp01's password:
Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.5.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Tue Jun 10 21:26:15 EDT 2014
System load: 0.0 Processes: 82
Usage of /: 22.5% of 11.81GB Users logged in: 0
Memory usage: 30% IP address for eth0: 10.10.41.108
Swap usage: 0%
Graph this data and manage this system at:
https://landscape.canonical.com/
38 packages can be updated.
30 updates are security updates.
Last login: Tue Jun 10 15:03:35 2014 from 10.10.101.96
Затем я экспортирую изображение в то, что выглядит как IP-адрес моего хоста:
myuser@myapp01:~$ export DISPLAY=10.10.101.96
Затем я пытаюсь запустить JVisualVM:
myuser@myapp01:~$ cd $JAVA_HOME
myuser@myapp01:/usr/lib/jvm/java-7-oracle-amd64$ ls
bin COPYRIGHT db include jre lib LICENSE man README.html release src.zip THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt
myuser@myapp01:/usr/lib/jvm/java-7-oracle-amd64$ cd bin/
myuser@myapp01:/usr/lib/jvm/java-7-oracle-amd64/bin$ ./jvisualvm
Error: Can't connect to X11 window server using '10.10.101.96' as the value of the DISPLAY variable.
See the /home/myuser/.visualvm/7u14/var/log/messages.log for details.
myuser@myapp01:/usr/lib/jvm/java-7-oracle-amd64/bin$ vim /home/myuser/.visualvm/7u14/var/log/messages.log
Внутри /home/myuser/.visualvm/7u14/var/log/messages.log
:
java.lang.InternalError: Can't connect to X11 window server using '10.10.101.96' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:110)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
at org.netbeans.core.startup.Main.start(Main.java:200)
at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:84)
at java.lang.Thread.run(Thread.java:745)
Идеи? Я подключен к VPN, это может на что-то повлиять? У меня неправильно настроен XMing? Моя команда export DISPLAY
неверна?
export DISPLAY
— это оператор, интерпретируемый оболочкой, следовательно, это часть скрипта. Скрипт это код. Если мойexport
неверен, как я считаю, этот вопрос касается кода. - person IAmYourFaja   schedule 11.06.2014localhost:10.0
). - person n. 1.8e9-where's-my-share m.   schedule 13.06.2014X11Forwarding yes
отображается без комментариев в вашей конфигурации sshd, если нет, то раскомментируйте/добавьте его, перезапустите sshd, затемssh -Y
на свой хост. - person n. 1.8e9-where's-my-share m.   schedule 13.06.2014ssh -y
... см.man ssh
(сторона unix) для получения более подробной информации. - person Serge Ballesta   schedule 13.06.2014myapp01
. Мысли? - person IAmYourFaja   schedule 13.06.2014