我有一個相當複雜的項目,需要從C++(Linux)遷移到Java 當前,C++版本是作爲共享庫(.so)分佈的,隨後是頂級接口頭文件類。實現細節從最終用戶完全隱藏。將C++項目遷移到Java,保護實現細節
這個問題不是關於將C++代碼移植到Java,而是關於創建類似的分發包。
假設我有一個非常簡單的「公共」類在C++中,topapi.h
:
class TopApi
{
public:
void do(const string& v);
}
實際實現從API用戶隱藏。實際的項目可能會包含do()將調用的另外100個文件/類。
分配將包含2個文件:topapi.so和topapi.h
用戶將#include "topapi.h"
在他們的代碼,並與topapi.so
鏈接他們的應用程序。
問題是: 1.如何在Java中實現類似效果(隱藏IP相關代碼) 2.如何向用戶顯示公共方法(與代碼保護無關,只是Java版本上面的頭文件)
*「我怎樣才能在Java中實現類似的效果?」*與使用任何其他專有產品相同的方式:許可協議中的NDA和反向逆向工程條款。 – cdhowie
這真的是一個關於混淆的問題嗎?或者你只是想只公開API給用戶? –
偉大的問題!其實,它們都是。雖然我在第一個問題上得到了答案(混淆),但第二個答案保持開放。我會嘗試更新這個問題。 –