質問
多くの白人売春婦は、JB Family Bucket の現在の「非常に高度な」使用方法を知っていると思います。実際、それは 30 日間無限にリセットされます ( IDE Eval Reset )。具体的な使用方法については詳細な説明を省略する。
特に、自分のコンピュータに複数の JB IDE をインストールしている IDE ユーザー (たとえば、私は、IDEA、PyCharm、CLion はすべて piao を使用しています) の場合、IDE の 1 つが長期間開かれていない場合、ここで問題が発生します。30日 何をするか!?
おそらく、考えられる唯一の方法は、完全にアンインストールし、関連する設定ファイルをすべてクリアして残りのアンインストールを行い、再インストールして再試行することです。ただし、この損失は大きく、特に多くの設定とプロジェクトを再インポートする必要があります。
解決する
私もこの方法を偶然発見したので、他では見つけられないはずです。ただし、この問題が初めて発生する場合は、前提条件があります。開いて使用できる IDE が少なくとも 1 つ必要です。つまり、Eval Reset を使用したばかりで、まだ 30 日以内である必要があります。
たとえば、現在 PyCharm を開くことはできませんが、IDEA はよく使用されるため、開くことができます。
1. macOS バージョンを例に挙げて (他のシステムも同様ですが、パスが異なります。後述します)、IDEA 内の eval フォルダーの下にあるキーを PyCharm の対応するフォルダーにコピーします。
# xxx是你的用户名
cp /Users/xxx/Library/Application\ Support/JetBrains/IntelliJIdea2021.2/eval/idea212.evaluation.key /Users/xxx/Library/Application\ Support/JetBrains/PyCharm2021.2/eval/PyCharm212.evaluation.key
キー ファイルが存在するかどうかに注意し、そのバージョンは現在インストールされているバージョンと一致している必要があります。たとえば、ここでの 212 はバージョン 2021.2 です。コピー後の名前変更には注意してください。たとえば、上記のコマンドは 1 行で実行できますが、idea212 のプレフィックスを PyCharm212 に変更することを忘れないでください。
2. この時点で、PyCharm を再度開くと、奇跡的に復活しており、リセット時間は IDEA とまったく同じであることがわかります。
パスについて
このプラグインはオープン ソース プロジェクトであり、パス構成はスクリプト ファイルのソース コードから確認できます。
// Resetter.java
protected static File getEvalDir() {
String configPath = PathManager.getConfigPath();
return new File(configPath, "eval");
}
上記の PathManager は実際には ですcom.intellij.openapi.application.PathManager
。GitHub に直接アクセスして、IDEA のオープン ソース コードを検索できます: PathManager.java
したがって、Windows のパスは一般的に次のようになりますC:\Users\xxx\AppData\Roaming\JetBrains\IntelliJIdea2021.2\eval
。Linux は独自に探索します。
考える
上記の解決策から、無限のリセット時間の鍵はこれらのキー ファイルであることがわかります。このプラグインのソース コードを一般的に理解すると、キー ファイルに保存されている情報を知ることができます。
// LicenseFileRecord.java
@Override
public void reset() throws Exception {
if (!FileUtil.delete(file)) {
throw new Exception("Remove " + type + " failed: " + file.getAbsolutePath());
}
// 此处写入了当前时间戳,貌似就是这么简单
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(file))) {
dos.writeLong(~System.currentTimeMillis());
}
}
したがって、すべてのキー ファイルの有効期限が 30 日以上経過している場合は、プラグインのソース コードをコピーし、これらのロジックを実行して手動で情報を書き込んだり、キー ファイルを生成したりすることができます。具体的な操作については詳しく説明しません。
つまり、このプラグインにはまだ限界があります。コードの大部分は GUI 関連です。有効期限が切れると開けなくなる JB ファミリ バケットをコマンド ラインで保存できる実行可能スクリプトを作成者が作成できれば素晴らしいと思います。