だから、私はJavaに基づいたプロジェクトをたくさん持っています。多くのネイティブ ライブラリを使用します。それら(プロジェクト/ライブラリ)はすべて同じリポジトリにあります。そしてもちろん、OSごとに異なるdll / jarがあります。アイデアは、OSに応じてインポートするものを変更することです。Maven、Gradleなどを使わなくても可能ですか?私はそれがC ++プリプロセッサを使用するように見えると思います..
UPT 誤った情報で申し訳ありません。私たちは Ant を使用しています。
だから、私はJavaに基づいたプロジェクトをたくさん持っています。多くのネイティブ ライブラリを使用します。それら(プロジェクト/ライブラリ)はすべて同じリポジトリにあります。そしてもちろん、OSごとに異なるdll / jarがあります。アイデアは、OSに応じてインポートするものを変更することです。Maven、Gradleなどを使わなくても可能ですか?私はそれがC ++プリプロセッサを使用するように見えると思います..
UPT 誤った情報で申し訳ありません。私たちは Ant を使用しています。
ビルド ツールを持つことの要点は、さまざまな依存関係を独自に処理する必要がないことです。そのため、Maven ビルド プロファイルをご覧になることをお勧めします。
例えば
<profiles>
<profile>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
</activation>
...
</profile>
</profiles>
次のhttp://maven.apache.org/guides/introduction/introduction-to-profiles.htmlもご覧ください。
理想的な仕事は、Maven を使用して、すべてのオペレーティング システムに必要なすべての依存関係を定義することです。したがって、プロジェクトには、各オペレーティング システムに必要なすべてのライブラリが含まれます。また、コードでライブラリを動的に使用するには、次の命令を使用してプログラムで OS を検出します。
System.getProperty("os.name")
また、libs 呼び出しの例として、switch ループまたは「if シリーズ」を定義します。
編集できる例を次に示します。
public class OSValidator {
private static String OS = System.getProperty("os.name").toLowerCase();
public static void main(String[] args) {
System.out.println(OS);
if (isWindows()) {
System.out.println("This is Windows");
} else if (isMac()) {
System.out.println("This is Mac");
} else if (isUnix()) {
System.out.println("This is Unix or Linux");
} else if (isSolaris()) {
System.out.println("This is Solaris");
} else {
System.out.println("Your OS is not support!!");
}
}
public static boolean isWindows() {
return (OS.indexOf("win") >= 0);
}
public static boolean isMac() {
return (OS.indexOf("mac") >= 0);
}
public static boolean isUnix() {
return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 );
}
public static boolean isSolaris() {
return (OS.indexOf("sunos") >= 0);
}
}