< prev index next >
src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsAppImageBuilder.java
Print this page
@@ -25,11 +25,10 @@
package jdk.jpackage.internal;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UncheckedIOException;
@@ -48,16 +47,19 @@
import java.util.ResourceBundle;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import java.util.stream.Stream;
-import jdk.jpackage.internal.Arguments;
import static jdk.jpackage.internal.StandardBundlerParam.*;
public class WindowsAppImageBuilder extends AbstractAppImageBuilder {
+ static {
+ System.loadLibrary("jpackage");
+ }
+
private static final ResourceBundle I18N = ResourceBundle.getBundle(
"jdk.jpackage.internal.resources.WinResources");
private final static String LIBRARY_NAME = "applauncher.dll";
private final static String REDIST_MSVCR = "vcruntimeVS_VER.dll";
@@ -386,44 +388,36 @@
File launcher = executableFile.toFile();
launcher.setWritable(true, true);
// Update branding of EXE file
if (REBRAND_EXECUTABLE.fetchFrom(p)) {
- File tool = new File(
- System.getProperty("java.home") + "\\bin\\jpackage.exe");
-
- // Run tool on launcher file to change the icon and the metadata.
try {
- if (WindowsDefender.isThereAPotentialWindowsDefenderIssue()) {
+ String tempDirectory = WindowsDefender.getUserTempDirectory();
+ if (Arguments.CLIOptions.context().userProvidedBuildRoot) {
+ tempDirectory = BUILD_ROOT.fetchFrom(p).getAbsolutePath();
+ }
+ if (WindowsDefender.isThereAPotentialWindowsDefenderIssue(
+ tempDirectory)) {
Log.error(MessageFormat.format(I18N.getString(
"message.potential.windows.defender.issue"),
- WindowsDefender.getUserTempDirectory()));
+ tempDirectory));
}
launcher.setWritable(true);
if (iconTarget.exists()) {
- ProcessBuilder pb = new ProcessBuilder(
- tool.getAbsolutePath(),
- "--icon-swap",
- iconTarget.getAbsolutePath(),
+ iconSwap(iconTarget.getAbsolutePath(),
launcher.getAbsolutePath());
- IOUtils.exec(pb, false);
}
File executableProperties = getConfig_ExecutableProperties(p);
if (executableProperties.exists()) {
- ProcessBuilder pb = new ProcessBuilder(
- tool.getAbsolutePath(),
- "--version-swap",
- executableProperties.getAbsolutePath(),
+ versionSwap(executableProperties.getAbsolutePath(),
launcher.getAbsolutePath());
- IOUtils.exec(pb, false);
}
- }
- finally {
+ } finally {
executableFile.toFile().setReadOnly();
}
}
Files.copy(iconTarget.toPath(),
@@ -446,6 +440,10 @@
copyEntry(appDir, srcdir, fname);
}
}
}
+ private static native int iconSwap(String iconTarget, String launcher);
+
+ private static native int versionSwap(String executableProperties, String launcher);
+
}
< prev index next >