59

Izpack 5 Beta 11 を使用するテスト マシンで、バンドルされた 64 ビット Java を実行する 64 ビット winrun4j exe を使用して install.jar を起動すると、Izpack が文句を言う

There is no script engine for file extension ".js"、次に不平を言いThe installer could not launch with administrator permissions、管理者権限がないため、デフォルトのインストール ディレクトリにインストールしようとすると失敗します。C:/Program Files 以外の別のフォルダへのインストールは問題なく完了します。

一方、32ビットJavaを実行している32ビットwinrun4jインストーラーで実行すると、正常に動作します。

exeラッパーなしでinstall.jarを直接実行した場合

つまり、java -jar install.jar

32 ビット JVM と 64 ビット JVM の両方を使用すると、これらのエラーが発生します。

そのため、現時点で唯一有効な解決策は、32 ビット exe ラッパーを使用したインストールですが、64 ビット ラッパーも必要です。

だから質問は

  1. 32 ビット exe が機能し、64 ビット exe が機能しない理由
  2. ラッパーなしでインストールしようとすると、32 ビットまたは 64 ビットのどちらもインストールされないのはなぜですか。

ファローアップ

javascript エラー (Izpack ではない) に関するこのスレッドを見つけたところ、ほとんどのファイル タイプの編集に使用するエディターである Utlradedit に .js ファイルが関連付けられていることがわかりました。

.js と Ultraedit の関連付けを解除するだけで、実行時に

  • java -jar install.jar 32 ビットの Java を 32 ビットの install.jar で使用
  • java -jar install.jar 64 ビットの Java を 64 ビットの install.jar で使用
  • 32 ビットの winrun4j ラッパー。

それは今動作します:)

しかし、64ビットのwinrun4jはインストールの開始に失敗し、まったく機能しません.コマンドウィンドウから実行すると、代わりにそれを見ることができます

ランニングの

wscript C:\Users\MESH\AppData\Local\Temp\Installer.js 
 c:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\JVM64\bin\javaw.exe 
 -Dizpack.mode=privileged -jar 
C:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\install.jar

彼らは走りました

wscript C:\Users\MESH\AppData\Local\Temp\Installer.js 
 c:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\JVM64\bin\javaw.exe 
 abort exit 
 -Dizpack.mode=privileged -jar 
 :\Code\WidgetReleases\1.0_Beta_2\widget-windows64\install.jar

したがって、フォローアップの質問は次のとおりです。

  1. ファイルタイプをエディターに関連付けるだけで、この JavaScript が機能しなくなるのはなぜですか。これまたは同様の問題が多くのユーザーに影響を与える可能性があると想像できます。
  2. 64 ビット ラッパーから実行すると、installer.js が Abort Exit を実行するのはなぜですか?
4

2 に答える 2

3

ここでは、次の 4 つの質問があります。

  1. 32 ビット exe が機能し、64 ビット exe が機能しない理由
  2. ラッパーなしでインストールしようとすると、32 ビットまたは 64 ビットのどちらもインストールされないのはなぜですか。
  3. ファイルタイプをエディターに関連付けるだけで、この JavaScript が機能しなくなるのはなぜですか。これまたは同様の問題が多くのユーザーに影響を与える可能性があると想像できます。
  4. 64 ビット ラッパーから実行すると、installer.js が Abort Exit を実行するのはなぜですか?

私はそれらに答えようとします:

  1. 32 ビットと 64 ビットの両方を「シームレスに」処理するはずのプログラムで、エラーやバグが発生することがあります。1 つの例は、Symantec の SEP 定義修復プログラムです。すべてではなく、時々動作します。あなたのコメントはこれらのバグを確認し、この 32/64 処理でエラーにならない競合プログラムを特定ました。おめでとう!:)

  2. 必要な app/wrapper がシステムの PATH に含まれていないと思われます。パス内の 2 つのフォルダーは、C:\WINDOWS と C:\WINDOWS\SYSTEM32 です。コマンド プロンプトで、単語を入力しますSET(大文字は必要ありません)。アルファベット順にソートされた変数のリストが表示されます。PATH= と表示されているファイルで、アプリを起動するラッパーの完全なフォルダー パスを探します。そこにない可能性が高いです。お好みで追加可能です。

  3. 良い質問ですが、それには十分な理由があります。開くファイルの種類をプログラムに関連付けることで、ファイル (この場合は .js で終わるファイル) を常にファイル エディターで開くようにコンピューターに指示することになります。あなたが意図したことではなく、あなたが指示したことを実行しています。意図したものを取得する一般的な方法は、ファイルを以前に使用していたプログラムに関連付け直し (どちらが最適かはお分かりでしょう)、ファイルを編集するには、お気に入りの JS エディターを "Open With.. ." Windows エクスプローラーの右クリック メニューのオプション。必要に応じて、これを行う方法についてのページを 1 つか 2 つ見つけてリンクできます。

  4. これは、質問と回答の 1 と強く結びついていると思います。

これが役立つかどうか教えてください。

于 2013-03-04T06:32:18.697 に答える
0

.js ファイルの既定のアクションを変更すると、.exe ファイルの既定のアクションを変更すると問題が発生するのと同じ理由で問題が発生します。プログラムは、別のプログラムのデフォルトのアクションがそれを実行することであると想定しています。編集は、デフォルトではなく、常に右クリック アクションである必要があります。

于 2013-03-19T22:32:49.580 に答える