2013-11-03 62 views
0

我有一個將其輸出作爲後置事件運行的項目。此應用程序也使用JNI函數,因此需要加載jvm.dll(它使用jvm.lib自動加載)。Visual Studio:將項目輸出作爲後置事件運行

  • 我可以在Visual Studio中正常構建和運行我的程序。
  • 我也可以通過雙擊運行可執行文件。
  • 我可以使用命令行運行它。

但是如果我輸入相同的命令行的生成後事件我收到以下錯誤:

This application has failed to start because jvm.dll was not found. Re-installing the application may fix this problem.

我已經加入了路徑JVM.DLL到我的PATH環境變量了。我不確定它爲什麼找不到它。

+0

確保您的'PATH'指向正確的'jvm.dll'。系統上可能有多個。 [dependency walker](http://dependencywalker.com)可以顯示你的命令行執行的地方。 – technomage

+0

@technomage如預期的,依賴walker只顯示名爲'jvm.dll'的文件丟失。我嘗試了完整路徑選項,它仍然是相同的文件名。 PATH變量設置正確。它被設置爲系統環境變量而不是用戶變量,所以我認爲每個程序都應該能夠看到它。有沒有辦法在Windows中覆蓋此值?我應該在哪裏找它? – atoMerz

+0

也許這是一個32位和64位的問題?從命令行轉儲環境,並與生成後事件命令行中的類似轉儲進行比較。 – technomage

回答

1

感謝technomage幫助我找到解決方案。

顯然VS在其上下文中操縱環境變量。所以我只需要使用以下命令在生成後事件中重新設置它:

set PATH=%PATH%;path_to_jvm.dll 
"$(TargetPath)" 
相關問題