[英]How can I run/control a Java program from within C?
我在ASIC模擬器中運行System Verilog。 SV具有導入/導出機制,可以從SV調用C函數,並且可以在C內部調用SV函數。
我想將模擬中的實時數據(非常緩慢的流)發送到我將用Java編寫的制圖程序中。 通過模擬器/ C程序進行定期更新來調用Java的最佳方法是什么?
在這里快速瀏覽一下: http : //java.sun.com/docs/books/jni/html/invoke.html ,...
然后考慮一下:
最簡單的方法是將數據寫入文件,並編寫一個Java程序以隨着文件的增長從文件中讀取數據。 查看此答案: unix / linux的Java IO實現“ tail -f”
分別啟動它們,或使用system()
從插件啟動Java程序,並將文件名作為參數傳遞。
最好的方法是讓Java程序在TCP套接字上偵聽可發送它們的C程序的更新。 讓C程序在啟動時就連接到Java程序,並且只要有更新,它就可以沿着連接的套接字傳遞它。 然后,Java程序可以獲取數據並更新需要更新的內容。
這還有一個很好的優點,即兩個程序甚至不必在同一台計算機上運行。
有一個Java本機接口 ,它允許C程序與Java對象進行交互。 但是,您需要編寫一些C代碼以將其集成到ASIC仿真器中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.