#define JAVA_LAUNCH_ERROR "JavaLaunchError"
#define UNSPECIFIED_ERROR "An unknown error occurred."
+#define APP_ROOT_PREFIX "$APP_ROOT"
+
NSString *FindJavaHome() {
NSTask *task = [[NSTask alloc] init];
NSPipe *pipe = [NSPipe pipe];
NSLog(@"displayAppName=%@", displayAppName);
printf("%s\n", [displayAppName UTF8String]);
- //
- NSMutableArray *jvmOptions = [[[mainBundle infoDictionary] objectForKey:@"JVMOptions"] mutableCopy];
- if (jvmOptions == nil) {
- jvmOptions = [NSMutableArray array];
+ // JVMオプションの取得
+ NSMutableArray *jvmOptions = [NSMutableArray array];
+ NSArray *jvmOptionsFixed = [[mainBundle infoDictionary] objectForKey:@"JVMOptions"];
+ if (jvmOptionsFixed != nil) {
+ for (NSString *option in jvmOptionsFixed) {
+ NSString *jvmOption = [option stringByReplacingOccurrencesOfString:@APP_ROOT_PREFIX withString:[mainBundle bundlePath]]; // $APP_ROOTという文字列をバンドルパスに置換する
+ [jvmOptions addObject: jvmOption];
+ }
}
-
- // バンドル名
- NSString *bundleName = [[mainBundle infoDictionary] objectForKey:@"CFBundleName"];
- NSLog(@"bundleName=%@", bundleName);
-
+
// ユーザー定義オプションの読み込み
+ NSString *bundleName = [[mainBundle infoDictionary] objectForKey:@"CFBundleName"];
NSString *userJvmOptionPath = [NSHomeDirectory() stringByAppendingPathComponent: [NSString stringWithFormat:@"/Library/%@/jvm_options", bundleName]];
+ NSLog(@"use define jvmoptions path=%@", userJvmOptionPath);
if ([fileManager fileExistsAtPath: userJvmOptionPath]) {
NSString* fileContents = [NSString stringWithContentsOfFile:userJvmOptionPath
encoding:NSUTF8StringEncoding error:nil];
for (id line in allLinedStrings) {
NSString *option = [line stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (![option hasPrefix:@"#"] && [option length] > 0) {
- NSLog(@"option: %@", line);
+ option = [option stringByReplacingOccurrencesOfString:@APP_ROOT_PREFIX withString:[mainBundle bundlePath]];
+ NSLog(@"option: %@", option);
[jvmOptions addObject: option];
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
- <dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>JavaLaunch</string>
- <key>CFBundleIconFile</key>
- <string>icon.icns</string>
- <key>CFBundleIdentifier</key>
- <string>charactermanaj.CharacterManaJ</string>
- <key>CFBundleDisplayName</key>
- <string>CharacterManaJ</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>CharacterManaJ</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>@BundleVersion@</string>
- <key>CFBundleShortVersionString</key>
- <string>@BundleShortVersionString@</string>
- <key>NSHumanReadableCopyright</key>
- <string>@NSHumanReadableCopyright@</string>
- <key>NSHighResolutionCapable</key>
- <true/>
- <key>NSSupportsAutomaticGraphicsSwitching</key>
- <true/>
- <key>ExecutableJar</key>
- <string>Resources/CharacterManaJ.jar</string>
- </dict>
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>JavaLaunch</string>
+ <key>CFBundleIconFile</key>
+ <string>icon.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>charactermanaj.CharacterManaJ</string>
+ <key>CFBundleDisplayName</key>
+ <string>CharacterManaJ</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>CharacterManaJ</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>@BundleVersion@</string>
+ <key>CFBundleShortVersionString</key>
+ <string>@BundleShortVersionString@</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>@NSHumanReadableCopyright@</string>
+ <key>NSHighResolutionCapable</key>
+ <true/>
+ <key>NSSupportsAutomaticGraphicsSwitching</key>
+ <true/>
+ <key>JVMOptions</key>
+ <array>
+ <!--
+ アプリケーションバンドルとデータをセットで配備する場合は以下のように設定する
+ <string>-DcharactersDir=$APP_ROOT/Contents/Characters</string>
+ <string>-DappConfigFile=$APP_ROOT/Contents/Characters/appConfig.xml</string>
+ -->
+ </array>
+ <key>ExecutableJar</key>
+ <string>Resources/CharacterManaJ.jar</string>
+</dict>
</plist>