2016-10-23 30 views
1

我試圖在R 3.3.1上通過rStudio 0.99.903在我的Mac 10.10.6上運行NetLogo 5.3.1。我還安裝了Java 1.8.0_77-B03Mac上的NetLogo 5.3.1和R 3.3.1 10.10.6無頭異常

> system("java -version") 
java version "1.8.0_77" 
Java(TM) SE Runtime Environment (build 1.8.0_77-b03) 
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) 
> .jinit() 
> .jcall("java/lang/System", "S", "getProperty", "java.runtime.version") 
[1] "1.8.0_77-b03" 
> 
> Sys.getenv('JAVA_HOME') 
[1] "" 
> Sys.getenv('LD_LIBRARY_PATH') 
[1] ":@[email protected]" 

我還運行RNetLogo_1.0-2ÿrJava_0.9-9。

R version 3.3.1 (2016-06-21) 
Platform: x86_64-apple-darwin13.4.0 (64-bit) 
Running under: OS X 10.11.6 (El Capitan) 

locale: 
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] RNetLogo_1.0-2 igraph_1.0.1 rJava_0.9-9 

loaded via a namespace (and not attached): 
[1] magrittr_1.5 rsconnect_0.5 tools_3.3.1 

當我在午餐時間netlogo中得到的錯誤如下。

> nl.path <- ("/Applications/NetLogo 5.3.1/Java") 
> ### Start NetLogo 
> NLStart(nl.path) 
java.awt.HeadlessException 
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204) 
    at java.awt.Window.<init>(Window.java:536) 
    at java.awt.Frame.<init>(Frame.java:420) 
    at java.awt.Frame.<init>(Frame.java:385) 
    at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1758) 
    at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1833) 
    at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1696) 
    at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863) 
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:666) 
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:637) 
    at nlcon.NLink.<init>(NLink.java:109) 

我已經嘗試了幾個解決方案,我在StackExchange或這裏和那裏找到了這裏。他們的

http://conjugateprior.org/2014/12/r-java8-osx/ 
http://charlotte-ngs.github.io/2016/01/MacOsXrJavaProblem.html 
https://github.com/snowflakedb/dplyr-snowflakedb/wiki/Configuring-R-rJava-RJDBC-on-Mac-OS-X 
http://stackoverflow.com/questions/35179151/cannot-load-r-xlsx-package-on-mac-os-10-11 
http://stackoverflow.com/questions/14915898/rnetlogo-function-nlstart-fails-to-launch-gui 

都沒有在我的電腦上工作...

沒有任何人有任何想法我應該必須做的,使這項工作?

謝謝!

PS1 /我有相同的確切結果從mac shell運行R.

PS2 /我已經安裝了Java 1.6並且在測試完這個問題之後,看到沒有做任何改變,我刪除了它。

+0

爲什麼選擇了'/ Applications'目錄作爲您的nl.path? –

+1

幫助頁面:「MAC用戶注意事項:如果您想在無頭模式下運行RNetLogo(無GUI,即在NLStart中設置參數gui = FALSE),您必須在加載包之前禁用AWT,只需執行Sys.setenv(NOAWT = 1)執行庫之前(RNetLogo)如果你想在GUI模式下運行RNetLogo,你必須從JGR應用程序啓動它(參見https://cran.r-project.org/package=JGR和http: //groups.yahoo.com/group/netlogo-users/message/14817)在啓動之前加載JGR包並運行Sys.unsetenv(「NOAWT」)之前,可能需要運行Sys.setenv(NOAWT = 1) JGR通過JGR()。「 –

+0

感謝您在NetLogo主目錄列表中查找信息...是關鍵! – lpuerto

回答

2

正如有人評論(我真的不知道他們爲什麼沒有發佈答案)問題的關鍵是我使用錯誤的軟件包來啓動NetLogo。

首先必須確定R具有正確的Java Home集。所以在mac shell上運行這個。

R CMD javareconf 

然後,在R shell /控制檯上,我們必須以源代碼方式安裝rJava,以便使用我們的Java位置和版本進行編譯。

install.packages("rJava", type="source", repos="http://cran.us.r-project.org」) 

然後,我們必須安裝JGR

install.packages("JGR") 

和運行並打開JGR控制檯。

require(JGR)  
### Start JGR 
JGR() 

形成那裏......我們在JGR控制檯上運行腳本/命令的其餘部分。

### call netlogo. Set the path where NetLogo is installed 
nl.path <- ("/Applications/NetLogo 5.3.1/") # Mac path 

### Start NetLogo 
    # The /Java directory is where the NetLogo java app lives. Don't set 
    # completely before to make the models path work  
NLStart(file.path(nl.path, "Java")) 

它應該工作。

PS /正如你可以閱讀here,此功能不支持的NetLogo爲Mac和Linux