title: JMeter 4 - can't execute jmeter-server in windows 7
body: <p>I download latest JMeter 4, </p>
  
  <p>As part of <a href="http://svn.apache.org/repos/asf/jmeter/tags/v2_4/docs/usermanual/remote-test.html" rel="noreferrer">Remote Testing</a></p>
  
  <blockquote>
    <p>To run JMeter in remote node, start the JMeter server component on all machines you wish to run on by running the JMETER_HOME/bin/jmeter-server (unix) or JMETER_HOME/bin/jmeter-server.bat (windows) script.</p>
  </blockquote>
  
  <p>I try to execute jmeter-server.bat in windows 7
  and got the following error:</p>
  
  <pre><code>Server failed to start: java.rmi.server.ExportException: Listen failed on port:
  0; nested exception is:
          java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
  the file specified)
  An error occurred: Listen failed on port: 0; nested exception is:
          java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
  the file specified)
  errorlevel=1
  </code></pre>
  
  <p>It seems that a file rmi_keystore.jks is missing. (I can't find it in JMeter folders)</p>
  
  <p>In JMeter 3.3 jmeter-server.bat is working.</p>
  
  <p><strong>EDIT 1</strong></p>
  
  <p>after I execute <code>create-rmi-keystore.bat</code> it created rmi_keystore.jks, but I get other error:</p>
  
  <pre><code>Server failed to start: java.rmi.server.ExportException: Listen failed on port:
  0; nested exception is:
          java.io.IOException: java.security.UnrecoverableKeyException: Cannot rec
  over key
  An error occurred: Listen failed on port: 0; nested exception is:
          java.io.IOException: java.security.UnrecoverableKeyException: Cannot rec
  over key
  errorlevel=1
  </code></pre>
  
  <p>error from log:</p>
  
  <pre><code>2018-02-11 12:09:13,916 ERROR o.a.j.e.DistributedRunner: Failed to create engine at 127.0.0.1
  java.rmi.ConnectIOException: Exception creating connection to: 127.0.0.1; nested exception is: 
      java.io.IOException: java.security.UnrecoverableKeyException: Cannot recover key
      at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) ~[?:1.8.0_25]
      at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_25]
      at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_25]
      at sun.rmi.server.UnicastRef.newCall(Unknown Source) ~[?:1.8.0_25]
      at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) ~[?:1.8.0_25]
      at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:70) ~[ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.engine.ClientJMeterEngine.&lt;init&gt;(ClientJMeterEngine.java:83) ~[ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.engine.DistributedRunner.createEngine(DistributedRunner.java:237) ~[ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.engine.DistributedRunner.getClientEngine(DistributedRunner.java:213) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:93) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.ActionRouter$$Lambda$63/2068100669.run(Unknown Source) [ApacheJMeter_core.jar:4.0 r1823414]
      at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
      at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
  Caused by: java.io.IOException: java.security.UnrecoverableKeyException: Cannot recover key
      at org.apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.java:110) ~[ApacheJMeter_core.jar:4.0 r1823414]
      ... 28 more
  Caused by: java.security.UnrecoverableKeyException: Cannot recover key
      at sun.security.provider.KeyProtector.recover(Unknown Source) ~[?:1.8.0_25]
      at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source) ~[?:1.8.0_25]
      at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source) ~[?:1.8.0_25]
      at java.security.KeyStore.getKey(Unknown Source) ~[?:1.8.0_25]
      at sun.security.ssl.SunX509KeyManagerImpl.&lt;init&gt;(Unknown Source) ~[?:1.8.0_25]
      at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(Unknown Source) ~[?:1.8.0_25]
      at javax.net.ssl.KeyManagerFactory.init(Unknown Source) ~[?:1.8.0_25]
      at org.apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.java:103) ~[ApacheJMeter_core.jar:4.0 r1823414]
      ... 28 more
  2018-02-11 12:09:24,368 INFO o.a.j.e.DistributedRunner: Failed to configure 127.0.0.1
  2018-02-11 12:09:24,369 INFO o.a.j.e.DistributedRunner: Stopping remote engines
  2018-02-11 12:09:24,370 INFO o.a.j.e.DistributedRunner: Remote engines have been stopped
  2018-02-11 12:09:24,370 ERROR o.a.j.g.a.ActionRouter: Error processing org.apache.jmeter.gui.action.RemoteStart@3249a1ce
  java.lang.RuntimeException: Following remote engines could not be configured:[127.0.0.1]
      at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:112) ~[ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) [ApacheJMeter_core.jar:4.0 r1823414]
      at org.apache.jmeter.gui.action.ActionRouter$$Lambda$63/2068100669.run(Unknown Source) [ApacheJMeter_core.jar:4.0 r1823414]
      at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
      at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
      at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
      at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
  </code></pre>
  
  <p><strong>EDIT 2</strong></p>
  
  <p>I tried to change <code>server.rmi.ssl.keystore.password</code> to password I wrote but got a different error </p>
  
  <pre><code>Server failed to start: java.rmi.server.ExportException: Listen failed on port:
  0; nested exception is:
          java.io.IOException: Keystore was tampered with, or password was incorre
  ct
  An error occurred: Listen failed on port: 0; nested exception is:
          java.io.IOException: Keystore was tampered with, or password was incorre
  ct
  </code></pre>
  
  <p><strong>EDIT 3</strong></p>
  
  <p>I tried to set the server port manually <code>SET SERVER_PORT=1099</code> according to <a href="http://jmeter.apache.org/usermanual/properties_reference.html#remote" rel="noreferrer">reference</a> but still trying to listen through port 0</p>
  
  <blockquote>
    <p>On Windows this can be done by:
    SET SERVER_PORT=</p>
  </blockquote>