我在寫一個Eclipse插件。我正在尋找正確的方式來獲取選定的java文件,並找到它的相應的.class文件。在Eclipse插件中,獲取與所選java文件對應的.class文件的正確方法是什麼?
我這樣做的方式現在適用於標準的Eclipse Java項目,但看起來不夠優雅:我調用IJavaProject#getOutputLocation並將其與選定文件的路徑結合使用。然後我只需將.java更改爲.class。
下面是從輸入選擇轉換爲路徑的方法的代碼:
def selection_to_path selection path = selection.get_paths.first output_location = path.get_first_segment.get_output_location root = org.eclipse.core.resources::ResourcesPlugin.getWorkspace().get_root folder = root.get_folder output_location folder.get_location.to_s path_to_file_as_string = path.get_last_segment.get_path.to_s path_to_file_as_string[/\.java$/] = ".class" path_elements_of_java_file = path_to_file_as_string.split("/")[3..-1] all_elements = folder.get_location.to_s.split("/") + path_elements_of_java_file File.join(all_elements) end
這工作,但我懷疑它失敗往往不夠,這是不應該做的事情。特別是,getOutputLocation的文檔說我對類文件位置的假設太簡單了。
那麼有什麼正確的方法來做到這一點?
我不需要這個工作,所有的時間。當然,在很多情況下.java文件沒有相應的.class文件(編譯錯誤,沒有自動編譯,不管)。我不在乎那些;我只想知道是否有類文件,它的完整路徑是什麼?
只是好奇...是僞代碼上面的代碼,還是你用不同的語言編寫你的插件?如果是這樣,那是什麼? –
這是jruby。我正在玩jruby插件 - 完整的東西在https://github.com/banshee/JrubyEclipsePlugin上的github上。有趣的部分是,您可以使用jruby隨時修改插件,無需爲簡單任務提供完整的插件開發環境。它仍然很粗糙,但它正在工作,我正在使用來完成任務。 –
有趣...你有辦法爲JRuby插件做PDE構建嗎? –