私のプロジェクトでは、コンパイルと実行にJava1.6が必要です。今、私はそれをJava 1.5で動作させるための要件があります(マーケティング側から)。メソッド本体を置き換えて(戻り値の型と引数は同じままです)、エラーなしでJava1.5でコンパイルできるようにします。
詳細:OS
OS固有のものをすべてカプセル化するというユーティリティクラスがあります。方法があります
public static void openFile(java.io.File file) throws java.io.IOException {
// open the file using java.awt.Desktop
...
}
ダブルクリックのようにファイルを開くには(start
Windowsコマンドまたはopen
Mac OS Xコマンドと同等)。Java 1.5ではコンパイルできないので、コンパイル時に除外しrun32dll
、Windowsまたはopen
MacOSXを使用して呼び出す別のメソッドに置き換えたいと思いRuntime.exec
ます。
質問:どうすればそれができますか?注釈はここで役立ちますか?
注:私はantを使用しており、2つのJavaファイルOS4J5.java
を作成できます。このファイルには、Java 1.5および1.6に必要なコードをOS4J6.java
含むクラスが含まれ、コンパイルする前にそのうちの1つをコピーします(または醜い方法-Javaに応じて条件付きでコンテンツを置き換えます)バージョン)しかし、別の方法がある場合、私はそれをしたくありません。OS
OS.java
OS.java
さらに詳しく説明すると、CIifdef, ifndef
ではを使用できます。Pythonではコンパイルは行われず、または他の何かを使用して機能をチェックhasattr
できます。CommonLispではを使用できます#+feature
。Javaに似たものはありますか?
この投稿が見つかりましたが、役に立たないようです。
どんな助けでも大歓迎です。kh。