< prev index next >

src/jdk.jpackage/share/native/libapplauncher/JavaVirtualMachine.cpp

Print this page




 141 JavaVirtualMachine::~JavaVirtualMachine(void) {
 142 }
 143 
 144 bool JavaVirtualMachine::StartJVM() {
 145     Platform& platform = Platform::GetInstance();
 146     Package& package = Package::GetInstance();
 147 
 148     TString classpath = package.GetClassPath();
 149     TString modulepath = package.GetModulePath();
 150     JavaOptions options;
 151 
 152     if (modulepath.empty() == false) {
 153         options.AppendValue(_T("-Djava.module.path"), modulepath);
 154     }
 155 
 156     options.AppendValue(_T("-Djava.library.path"),
 157             package.GetPackageAppDirectory() + FilePath::PathSeparator()
 158             + package.GetPackageLauncherDirectory());
 159     options.AppendValue(
 160             _T("-Djava.launcher.path"), package.GetPackageLauncherDirectory());
 161     options.AppendValue(_T("-Dapp.preferences.id"), package.GetAppID());
 162     options.AppendValues(package.GetJVMArgs());
 163 
 164 #ifdef DEBUG
 165     if (package.Debugging() == dsJava) {
 166         options.AppendValue(_T("-Xdebug"), _T(""));
 167         options.AppendValue(
 168                 _T("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=localhost:5005"),
 169                 _T(""));
 170         platform.ShowMessage(_T("localhost:5005"));
 171     }
 172 #endif // DEBUG
 173 
 174     TString maxHeapSizeOption;
 175     TString minHeapSizeOption;
 176 
 177 
 178     if (package.GetMemoryState() == PackageBootFields::msAuto) {
 179         TPlatformNumber memorySize = package.GetMemorySize();
 180         TString memory =
 181                 PlatformString((size_t)memorySize).toString() + _T("m");
 182         maxHeapSizeOption = TString(_T("-Xmx")) + memory;


 217 
 218     if (package.HasSplashScreen() == true) {
 219         options.AppendValue(TString(_T("-splash:"))
 220                 + package.GetSplashScreenFileName(), _T(""));
 221     }
 222 
 223     if (mainModule.empty() == true) {
 224         options.AppendValue(Helpers::ConvertJavaPathToId(mainClassName),
 225                 _T(""));
 226     } else {
 227         options.AppendValue(_T("-m"));
 228         options.AppendValue(mainModule);
 229     }
 230 
 231     return launchVM(options, vmargs);
 232 }
 233 
 234 void JavaVirtualMachine::configureLibrary() {
 235     Platform& platform = Platform::GetInstance();
 236     Package& package = Package::GetInstance();
 237     TString libName = package.GetJVMLibraryFileName();
 238     platform.addPlatformDependencies(&javaLibrary);
 239     javaLibrary.Load(libName);
 240 }
 241 
 242 bool JavaVirtualMachine::launchVM(JavaOptions& options,
 243         std::list<TString>& vmargs) {
 244     Platform& platform = Platform::GetInstance();
 245     Package& package = Package::GetInstance();
 246 
 247 #ifdef MAC
 248     // Mac adds a ProcessSerialNumber to args when launched from .app
 249     // filter out the psn since they it's not expected in the app
 250     if (platform.IsMainThread() == false) {
 251         std::list<TString> loptions = options.ToList();
 252         vmargs.splice(vmargs.end(), loptions,
 253                 loptions.begin(), loptions.end());
 254     }
 255 #else
 256     std::list<TString> loptions = options.ToList();
 257     vmargs.splice(vmargs.end(), loptions, loptions.begin(), loptions.end());




 141 JavaVirtualMachine::~JavaVirtualMachine(void) {
 142 }
 143 
 144 bool JavaVirtualMachine::StartJVM() {
 145     Platform& platform = Platform::GetInstance();
 146     Package& package = Package::GetInstance();
 147 
 148     TString classpath = package.GetClassPath();
 149     TString modulepath = package.GetModulePath();
 150     JavaOptions options;
 151 
 152     if (modulepath.empty() == false) {
 153         options.AppendValue(_T("-Djava.module.path"), modulepath);
 154     }
 155 
 156     options.AppendValue(_T("-Djava.library.path"),
 157             package.GetPackageAppDirectory() + FilePath::PathSeparator()
 158             + package.GetPackageLauncherDirectory());
 159     options.AppendValue(
 160             _T("-Djava.launcher.path"), package.GetPackageLauncherDirectory());
 161     options.AppendValues(package.GetJavaOptions());

 162 
 163 #ifdef DEBUG
 164     if (package.Debugging() == dsJava) {
 165         options.AppendValue(_T("-Xdebug"), _T(""));
 166         options.AppendValue(
 167                 _T("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=localhost:5005"),
 168                 _T(""));
 169         platform.ShowMessage(_T("localhost:5005"));
 170     }
 171 #endif // DEBUG
 172 
 173     TString maxHeapSizeOption;
 174     TString minHeapSizeOption;
 175 
 176 
 177     if (package.GetMemoryState() == PackageBootFields::msAuto) {
 178         TPlatformNumber memorySize = package.GetMemorySize();
 179         TString memory =
 180                 PlatformString((size_t)memorySize).toString() + _T("m");
 181         maxHeapSizeOption = TString(_T("-Xmx")) + memory;


 216 
 217     if (package.HasSplashScreen() == true) {
 218         options.AppendValue(TString(_T("-splash:"))
 219                 + package.GetSplashScreenFileName(), _T(""));
 220     }
 221 
 222     if (mainModule.empty() == true) {
 223         options.AppendValue(Helpers::ConvertJavaPathToId(mainClassName),
 224                 _T(""));
 225     } else {
 226         options.AppendValue(_T("-m"));
 227         options.AppendValue(mainModule);
 228     }
 229 
 230     return launchVM(options, vmargs);
 231 }
 232 
 233 void JavaVirtualMachine::configureLibrary() {
 234     Platform& platform = Platform::GetInstance();
 235     Package& package = Package::GetInstance();
 236     TString libName = package.GetJavaLibraryFileName();
 237     platform.addPlatformDependencies(&javaLibrary);
 238     javaLibrary.Load(libName);
 239 }
 240 
 241 bool JavaVirtualMachine::launchVM(JavaOptions& options,
 242         std::list<TString>& vmargs) {
 243     Platform& platform = Platform::GetInstance();
 244     Package& package = Package::GetInstance();
 245 
 246 #ifdef MAC
 247     // Mac adds a ProcessSerialNumber to args when launched from .app
 248     // filter out the psn since they it's not expected in the app
 249     if (platform.IsMainThread() == false) {
 250         std::list<TString> loptions = options.ToList();
 251         vmargs.splice(vmargs.end(), loptions,
 252                 loptions.begin(), loptions.end());
 253     }
 254 #else
 255     std::list<TString> loptions = options.ToList();
 256     vmargs.splice(vmargs.end(), loptions, loptions.begin(), loptions.end());


< prev index next >