問:有沒有辦法讓一個java程序在Windows上像mac一樣運行兩次?在Mac上多次運行Java程序
回答
您不指定是否要啓動簡單的.jar或應用程序包,所以我將給出兩個示例。要在OS X上運行多個應用程序包實例,可以使用以下技巧;打開終端並使用以下命令啓動應用程序:
open -n /path/to/your/java.app
每次調用此命令時,都會打開一個新實例。
注意:僅僅因爲可以啓動多個實例並不意味着這樣做是個好主意。確保您不會遇到使用同一文件對多個實例進行併發寫入訪問的麻煩。
如果你想運行一個罐子,你可以簡單地調用
java -jar /path/to/your/java.jar
多次啓動了多個實例。
從OSX下的Java應用程序中啓動了Java的應用程序,你必須做這樣的事情:
在簡單的罐子的情況下:
File jarFile = new File("/path/to/your/jarFile.jar");
Runtime.getRuntime().exec(new String[] { "java", "-jar", jarFile.getAbsolutePath() });
在這種情況下的應用程序包:
File jarFile = new File("/path/to/your/jarFile.app");
final String[] command = { "open", "-n", jarFile.getAbsolutePath() };
Runtime.getRuntime().exec(command);
我真的不明白這個問題。但是,爲什麼不將它抽象爲一種方法,而不是將它命名爲程序並將該子程序調用兩次。或者產生兩個線程?
也許這是一個有趣的問題,但我會打開兩個終端窗口,一旦每個終端上運行它...
它的工作方式,但由於某種原因,當你從程序內部調用程序,它不起作用 –
這取決於你的Java程序的性質。如果你的程序作爲服務器和客戶端運行,當你運行多個實例時它可能會導致問題。在許多服務器程序中,它使用固定的端口號來簡化設置和實現。由於給定的端口號不能被多個應用程序使用,因此除非您可以更改應用程序設置中的端口號,否則無法打開該應用程序的多個實例。
許多Java應用程序使用這個技巧來阻止用戶通過檢查某個端口是否正在使用來打開其程序的多個實例。如果是這種情況,那麼你不能運行該程序的多個實例。
對於其他不使用端口或端口的Java應用程序不會崩潰,您可以通過終端打開兩次或更多。
在我的程序中,用戶輸入所需的端口號 –
你可以不是兩次運行呢?問題是什麼? – gigadot
當你雙擊一個應用程序圖標時,它會運行程序,但是如果它已經運行,它會把你帶到它的窗口>。< –
假設您正在系統上運行客戶端版本的代碼並嘗試連接到主機。首先,你需要讓服務器在兩臺機器上運行,B和C在你的情況下運行。其次,您使用的客戶端代碼應該是讀取連接的IP地址和端口。它不應該被硬編碼,否則你將不得不改變代碼並重新編譯服務器B.這應該對你有所幫助。
猜我已經回答了您的查詢。 :)
- 1. 無法在mac上運行java程序
- 2. 在Mac上運行C#(windows)程序
- 3. 在java中運行1000次程序
- 4. 在Mac上編譯和運行Java程序
- 5. 通過Java Applet在Mac OSX上運行.pkg安裝程序
- 6. 無法在mac上正常運行java應用程序
- 7. 在mac上運行帶條件參數的java應用程序
- 8. 編譯並運行在mac終端上的java程序
- 9. Netbeans xDebug只在Mac上運行一次
- 10. 如何在多線程上運行java程序
- 11. 運行在Mac上
- 12. NoClassDefFoundError在Linux上運行應用程序(但不是在Mac上)
- 13. 在Hadoop上運行java程序
- 14. 停止一次運行多個程序
- 15. C程序運行Mac應用程序
- 16. 無法運行在mac上的android的第一次react-native應用程序
- 17. 在多個內核上運行程序
- 18. 在多臺電腦上運行程序
- 19. 如何在Mac上的Redis上運行Python應用程序?
- 20. Eclipse不記得上次運行程序
- 21. 在Mac上遠程運行Mathematica
- 22. 運行在同一臺機器上的多個Java程序
- 23. 在多個計算節點上運行相同的Java程序
- 24. 當多個Java程序在同一臺機器上運行時
- 25. Java運行時無法在mac上運行命令
- 26. 通過多次運行程序以C++多次輸出文件
- 27. 運行Maven命令從Java程序(在Eclipse)的Mac OS
- 28. UnsupportedClassVersionError在運行Java程序
- 29. 的Java在Java程序中執行一個程序的Mac
- 30. 在Java中多次運行命令行程序 - 這是正確的嗎?
不能從同一個jvm啓動兩個不同的進程,在這種情況下您應該探索ProcessBuilder。 – Scorpion
這似乎並不是在OS X上構建應用程序的正確方式。您應該做的只有一個「應用程序」 - 用戶界面的進程。您可以使用「幫助程序」進程在後臺執行一些任務,如下載。 – millimoose
你究竟跑了兩次是什麼意思?一旦第一個程序結束,或者兩個程序同時運行,是否需要啓動第二個程序?具體來說,你試圖重新創建Windows呢? – BitFiber