他の

Mac java .jarファイルを変更する方法は?

NS

ダドリーブルックス

オリジナルポスター
2011年4月4日
サンフランシスコ
  • 2011年4月14日
アプリケーション(Thunderbird.app)で簡単な変更を行う必要があります-.jarファイルの1行を変更します。古いWindowsコンピュータでは、使用するソフトウェアを知っていました。 Snow Leopardで.jarファイルを開いて変更し、アプリで保存する最も簡単な方法は何ですか?できれば、OSに組み込まれているものを使用してください。そうでない場合は、フリーウェアを使用していますか?

ジミナウス

2010年12月16日


シドニー
  • 2011年4月15日
.jarファイルは、拡張子が異なる(およびいくつかの標準/事前定義されたレイアウト)単なる.zipファイルです。署名されていない場合は、/ usr / binにある標準のzipおよびunzipプログラムを使用して.jarファイルを変更できます。

「.jarファイルの1行を変更する」は、.jarファイルのコンテキストでは直接意味がありません。その.jarファイルで何をしたいのかを正確に教えていただければ、どのMac OSXツール/プログラムをどのように使用できるかを教えてくれるかもしれません。 NS

マフロン

2006年9月15日
  • 2011年4月15日
ワイヤレスで投稿(Mozilla / 5.0(iPhone; U; Mac OSXのようなCPUiPhone OS 4_2_1; sv-se)AppleWebKit / 533.17.9(GeckoのようなKHTML)バージョン/5.0.2モバイル/ 8C148Safari / 6533.18.5)

実際には、抽出、変更、および組み立ての3つのフェーズがあります。

抽出は簡単です。右クリックして[アーカイブ解除](afaik)をクリックします。

変更:マニフェスト(実行するクラスなど)の場合は簡単ですが、Javaファイルは.classファイルにコンパイルされるため、変更する前に逆アセンブルする必要があります。

すべてをつなぎ合わせるには、ターミナルの「jar」コマンドをグーグルで検索します。

FOSSの場合は、ソースからコンパイルする方が適切で簡単です。そうでなければ、私はそれが100%合法だとは思いません。 NS

ダドリーブルックス

オリジナルポスター
2011年4月4日
サンフランシスコ
  • 2011年4月15日
.jarファイルに含まれる.jsファイルの行を変更する必要があります。しかし、あなたの返事は私の質問を明確にします:

私はこの変更をWindowsで何度も行いました(つまり、アップグレードをダウンロードするたびに、もちろん以前の変更が消去されました)。変更を推奨した人は、IZArcと呼ばれる(非)アーカイバも推奨しました。このアーカイバでは、プロセス全体をIZArc内から実行できます。.jarファイルを開いて(アーカイブ解除して)、. jsファイルを見つけて、行を編集します...次に[終了]をクリックすると、すべてがアーカイブされた状態に戻ります。

.jarを任意のアンアーカイバーでアンアーカイブし、.jsを任意のテキストエディターで編集できることを理解しています。私の心配は、プログラマーではないので、再アーカイブで何か有害なことをするかもしれないということだと思います。関連するすべてのファイルをアーカイブしたり、あまりにも多くのファイルをアーカイブしたりしないでください。

だから私の質問は:最終的な.jarに含まれるべきファイルが正確に含まれていることを知っているように、それ自体の内部から上記のすべてを実行するアーカイバ(できればOS内)はありますか?または、それが失敗した場合、正しく再アーカイブしたことを確認するために何をする必要がありますか?このフォーラムでは、これは完全な初心者の質問であることに気づきました。

notjustjay

2003年9月19日
カナダ、え?
  • 2011年4月15日
.jarファイルが単に拡張子の異なるZIPファイルである場合は、「zip」および「unzip」コマンドを使用して、ターミナルから自由に圧縮および解凍できます。

chown33

モデレータ
スタッフ
2009年8月9日
深海平原
  • 2011年4月15日
notjustjayによると:.jarファイルが単に拡張子の異なるZIPファイルである場合は、「zip」および「unzip」コマンドを使用して、ターミナルから自由に圧縮および解凍できます。

または、この目的のために明示的に記述され、マニフェストの正しい順序を維持する「jar」コマンドを使用します(通常、最初のエントリとして、または最初のいくつかのエントリの1つとして存在する必要があります)。

jarコマンドがデフォルトでインストールされていると確信しています。これは、10.7Lionでも引き続き当てはまるはずです。
反応:abronsdilan

notjustjay

2003年9月19日
カナダ、え?
  • 2011年4月15日
chown33は次のように述べています。または、この目的のために明示的に記述され、マニフェストの正しい順序を維持する「jar」コマンドを使用します(通常、最初のエントリとして、または多くても最初のいくつかのエントリとして存在する必要があります)。

jarコマンドがデフォルトでインストールされていると確信しています。これは、10.7Lionでも引き続き当てはまるはずです。

ああ、さらに良い。ありがとう、それについて知りませんでした。

PilotError

2006年4月12日
ロングアイランド
  • 2011年4月15日
または、jarコマンドを使用できます。パラメータは、コマンドラインのzipユーティリティと同じです。

$ jar -xvf jarfile.jar **ファイルを抽出します

**ファイルを編集します**

$ jar -cvf jarfile.jar **新しいJarファイルを作成します
反応:abronsdilan NS

ダドリーブルックス

オリジナルポスター
2011年4月4日
サンフランシスコ
  • 2011年4月15日
ありがとう。 PilotErrorの方法は単純で成功しました。ソフトウェアエラー、初心者エラー、さらにはパイロットエラーもありませんでした。しかし、それでも私がWindowsで必要としていたよりも多くのステップがありました:アーカイブ解除後のターミナルから、エディターを使用するためのデスクトップへの切り替え(確かに、ターミナルがアクセスできると思われるUNIXエディターを知らなかったための私のせいです) 、次にターミナルに戻って再アーカイブします。さらに、unixコマンドに必要なキーストロークを増やします。 IZArcがWindowsで行ったように、1つのプログラム内で*すべて*それを実行するエディターを見つけたいと思います:ctrl-open、edit、ctrl-close --zip-zip(しゃれを意図した)!

chown33

モデレータ
スタッフ
2009年8月9日
深海平原
  • 2011年4月15日
dudleybrooksは言った:ありがとう。 PilotErrorの方法は単純で成功しました。ソフトウェアエラー、初心者エラー、さらにはパイロットエラーもありませんでした。しかし、それでも私がWindowsで必要としていたよりも多くのステップがありました:アーカイブ解除後のターミナルから、エディターを使用するためのデスクトップへの切り替え(確かに、ターミナルがアクセスできると思われるUNIXエディターを知らなかったための私のせいです) 、次にターミナルに戻って再アーカイブします。さらに、unixコマンドに必要なキーストロークを増やします。 IZArcがWindowsで行ったように、1つのプログラム内で*すべて*それを実行するエディターを見つけたいと思います:ctrl-open、edit、ctrl-close --zip-zip(しゃれを意図した)!

私はすべてを行うツールを知りません。率直に言って、Mac OSでjar内のファイルを編集する方法を誰かが尋ねるのはこれが初めてなので、大きなターゲット市場はないと思います。

コマンドラインをターミナルに貼り付けることができるので、コマンドをテキストファイルに保存してから、コピーして貼り付けます。タイピングは必要ありません。

これが私がテキストファイルに保存するおおよそのものです:
コード:jar -xvf jarfile.jar ## Extracts the files open -e path/to/fileYouWantToEdit.itsExtension jar -cvf jarfile.jar ## Create the new Jar file明らかに、jarfile.jarを実際のjarファイルに変更する必要があります。

##を表示したのは、これらがbashの実際のコメント文字だからです。

また、置換する必要のあるパス名を使用した「open-e」コマンドも示しました。 open -eは、指定されたファイルをTextEdit.appで開きます。代わりに好みの別のエディターがある場合は、代わりにそれを使用するように「open」に指示できます。 'open'コマンドのマニュアルページは次のとおりです。
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/open.1.html
特に-aと-bのオプションを見てください。

最後に、「cd someDir」など、他のコマンドをそこに入れることができます。

おそらく「sed」スクリプトを記述して置換を行うことができるので、ファイルを手動で編集する必要はまったくありません。次に、すべてをシェルスクリプトにし、それをAppleScriptにラップして、ドロップレットとして保存します。その後、元のアプリをAppleScriptドロップレットにドロップするだけで、すべての変更が自動的に行われます。ただし、これらすべてを記述してデバッグする必要があり、アプリが更新されたときにコピー/貼り付けを行うよりも、おそらく数時間かかるでしょう。

jarへの変更がベンダーが提供する必要があるものである場合は、おそらくアプリに対してバグレポートを提出する必要があります。最もクリーンな修正は、自分で修正する必要がまったくないことです。

PilotError

2006年4月12日
ロングアイランド
  • 2011年4月15日
Windowsでは、ウィンドウにコンテンツを表示するpkzipやwinzipなどのプログラムを使用できます。ファイルをダブルクリックするだけで、内部で抽出され、関連するプログラム(エディター)に送信されます。

OS Xにはzipユーティリティがありますが、確かに、私はWindowsのようにOSXを使用していません。同じことを実行できるプログラムの1つを追跡できると確信していますが、ここで必要なものについては、検索する価値がありませんでした。 NS

ダドリーブルックス

オリジナルポスター
2011年4月4日
サンフランシスコ
  • 2011年4月16日
PilotErrorとChown33:OSXの市場の欠如についてあなたは正しいと確信しています。

Chown33:自動化と関連する詳細についてのアドバイスをありがとう。やってみます。 OMG、私はプログラマーになるかもしれません!

これは修正する必要があると*私*が思うものですが、バグではありません。Thunderbirdには、複数のアドレスを返す可能性のある電子メールアドレスの高度な検索機能があります。 [書き込み]をクリックすると、それらすべてが[宛先]フィールドに配置されます(他のオプションはありません)。この変更により、ネチケットを向上させるために、それらが「BCC」フィールドに配置されます。 TB 1.xには以前このオプションがありましたが、2.xでは失われました。 NS

peregin55

2008年2月25日
  • 2011年5月8日
Emacsはあなたが望むことをします

LinuxとMacOS Xでは、emacsを使用してjar内のファイルを編集します。次のように入力するだけです。

emacs somejar.jar

その後、標準のemacsコマンドを使用して、jar内のすべてのファイルを参照し、開いて保存することができます。行った変更はすべて自動的にjarに適用されます(手動でjarを解除する必要はありません)
反応:abronsdilan NS

ダドリーブルックス

オリジナルポスター
2011年4月4日
サンフランシスコ
  • 2011年5月8日
ありがとう!

peregin55

それを知っておくのは良いことです。

-
ダドリー NS

bigdisaster

2010年1月14日
  • 2012年6月8日
argh。動作しません。 .classファイルのいくつかの文字列を置き換える必要があります(私はまったく同じ数の記号を使用します)、次にjarコマンドで再パックしようとしますが、結果のファイルは最初のファイルよりも数バイト小さくなります。私のモバイルにインストールしてみてください。「間違ったjar形式」と表示されます。
何か案は?

TopHatProductions115

2016年8月22日
  • 2016年11月10日
PilotErrorのコメント:または、jarコマンドを使用できます。パラメータは、コマンドラインのzipユーティリティと同じです。

$ jar -xvf jarfile.jar **ファイルを抽出します

**ファイルを編集します**

$ jar -cvf jarfile.jar **新しいJarファイルを作成します


これは署名されたJavaアーカイブで機能しますか?

マイケルワーン

2016年11月11日
  • 2016年11月11日
vimエディターを使用して、圧縮されたテキストファイルのファイルを編集できます。
  1. ターミナルからファイルの場所に移動します。
  2. vimname.jarと入力します
  3. 変更するファイルを選択し、Enterキーを押します
  4. ファイルを編集し、Escキーと:wqキーを押します。保存して終了します。
お役に立てれば。

okieiam

2016年12月17日
  • 2016年12月18日
ええ、私も、Windowsでjarファイルのクラスパスを編集するために7zipを使用していました NS

jtara

2009年4月23日
  • 2016年12月21日
thunderbird.appを変更する必要がある場合は、ソースを使用して変更を加え、ビルドします。

https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions NS

Clovr

2018年11月13日
  • 2018年11月13日
michaelwarne氏は次のように述べています。vimエディターを使用して、圧縮されたテキストファイルのファイルを編集できます。
  1. ターミナルからファイルの場所に移動します。
  2. vimname.jarと入力します
  3. 変更するファイルを選択し、Enterキーを押します
  4. ファイルを編集し、Escキーと:wqキーを押します。保存して終了します。
お役に立てれば。
bashを使用してこれを自動化することはできませんか?あなたがそれを通して啓発するならば、それは大いに役立つでしょう。
反応:abronsdilan