একটি জারের ভিতরে একটি ফাইল পরিবর্তন করা হচ্ছে


88

আমি আমার জারের ভিতরে একটি ফাইল পরিবর্তন করতে চাই। আমার অ্যাপ্লিকেশনটির মধ্যে থেকে নিষেধ না পেয়ে এবং পুনরায় জারিং ছাড়াই এটি করা কি সম্ভব?

আমি যে ফাইলটি সংশোধন করতে চাই তা হ'ল কনফিগারেশন ফাইলগুলি, বেশিরভাগ xML ভিত্তিক।

আমি আনস্রোতাবিহীন না হওয়ার আগ্রহী হওয়ার কারণটি হ'ল অ্যাপ্লিকেশনটি লঞ্চ 4j দিয়ে মোড়ানো হয় যদি আমি এটি আনজার না করে আমি আবার .exe ফাইলটি তৈরি করতে পারি না।


4
আমি ফাইল সিস্টেমে অস্থায়ী ফাইল তৈরি না করে অ্যাপ্লিকেশনের মধ্যে পরিপূরক ফাইলগুলি রাখতে চাই।
হামজা ইয়ারলিকায়া

এই সমাধানটি stackoverflow.com/a/4837522/1853864 ব্যবহার করে দেখুন এবং আমি আমার সমস্যাগুলি সমাধান করেছি were
এ। ম্যাগালহিস

আপনি কি দয়া করে বর্তমান গৃহীত উত্তরটি অগ্রহণযোগ্য করতে পারেন? এটির নেতিবাচক স্কোর রয়েছে এবং একেবারে সহায়ক নয়
ডিসি

উত্তর:


84

আপনি uবিকল্পটি ব্যবহার করতে পারেনjar

জাভা টিউটোরিয়াল থেকে:

jar uf jar-file input-file(s)

"সংরক্ষণাগারে ইতিমধ্যে যে কোনও ফাইল যুক্ত হওয়ার সাথে একই পথের নাম রয়েছে সেগুলি ওভাররাইট করা হবে।"

একটি জেআর ফাইল আপডেট করা দেখুন ।

আবার পুরো জারটি তৈরি করার চেয়ে অনেক ভাল। আপনার প্রোগ্রামের মধ্যে থেকে এটি শুরু করা খুব সম্ভব শোনায়। জাভাতে কমান্ড লাইন চালানোর চেষ্টা করুন


অসাধারণ! তবে তারা পথের নামগুলি মজাদারভাবে যুক্ত করেছে। আই বি বিটবকেট.ফু.বার পরিবর্তে বিদ্যমান একটিতে রয়েছে
com.etc.etc

26

আপনি ভিম ব্যবহার করতে পারেন:

vim my.jar

ভিম unzipআপনার পরিবেশে প্রদত্ত সংক্ষেপিত পাঠ্য ফাইলগুলি সম্পাদনা করতে সক্ষম ।


4
এটা অসাধারণ. আপনি যে ফাইলটি সন্ধান করছেন তাতে নেভিগেট করুন এবং এন্টার টিপুন। ফাইল সম্পাদনা করুন, তারপরে টাইপ করুন: সংরক্ষণ করতে wq!
মাইকেল বাটলার

zipপরিবর্তনগুলি সংরক্ষণ করতে সক্ষম হতে আপনার পরিবেশেও আপনার প্রয়োজন । উত্তর করার জন্য ধন্যবাদ!
18

11

জাভা জার ফাইলগুলি জিপ ফাইলগুলির মতো একই ফর্ম্যাট - তাই যদি আপনার কাছে একটি জিপ ফাইল ইউটিলিটি থাকে যা আপনাকে একটি সংরক্ষণাগারটি পরিবর্তন করতে দেয় তবে আপনার দরজাটিতে আপনার পা রয়েছে। দ্বিতীয় সমস্যাটি হ'ল, আপনি যদি কোনও শ্রেণি বা অন্য কোনও কিছু পুনরায় সংকলন করতে চান তবে আপনার সম্ভবত সম্ভবত জারটি পুনরায় তৈরি করতে হবে; তবে একটি পাঠ্য ফাইল বা কিছু (উদাহরণস্বরূপ, এক্সএমএল) সহজেই পর্যাপ্ত পরিমাণে পরিবর্তন করা উচিত।


8

যেমনটি অনেকে বলেছে, আপনি JAR পুনর্নির্মাণ না করে আপনি কোনও JAR তে কোনও ফাইল পরিবর্তন করতে পারবেন না। এটি Launch4J এর সাথে আরও খারাপ, একবার আপনি JAR পরিবর্তন করার পরে আপনাকে EXE পুনর্নির্মাণ করতে হবে। সুতরাং এই পথে যেতে হবে না।

JAR এ কনফিগারেশন ফাইলগুলি রাখা সাধারণত খারাপ ধারণা। এখানে আমার পরামর্শ। কিছু পূর্ব নির্ধারিত স্থানে (যেমন হোম ডিরেক্টরি, \ প্রোগ্রাম ফাইলগুলি \ ইত্যাদি) আপনার কনফিগারেশন ফাইলটির সন্ধান করুন। আপনি যদি একটি কনফিগারেশন ফাইল খুঁজে পান তবে এটি ব্যবহার করুন। অন্যথায়, জেআর-তে থাকা ফ্যালব্যাক হিসাবে ব্যবহার করুন। আপনি যদি এটি করেন তবে আপনার পূর্বনির্ধারিত স্থানে কনফিগারেশন ফাইলটি লিখতে হবে এবং প্রোগ্রামটি এটি গ্রহণ করবে।

এই পদ্ধতির আর একটি সুবিধা হ'ল আপনি যদি নিজের সফ্টওয়্যার আপগ্রেড করেন তবে পরিবর্তিত কনফিগারেশন ফাইলটি ওভাররাইট হবে না।


4

এই সহায়তা কিনা তা নিশ্চিত নন, তবে আপনি আহরণ ছাড়াই সম্পাদনা করতে পারবেন:

  1. Vi সম্পাদক থেকে জার ফাইলটি খুলুন
  2. আপনি তালিকা থেকে সম্পাদনা করতে চান ফাইল নির্বাচন করুন
  3. চেঞ্জারগুলি করতে ফাইলটি খোলার জন্য এন্টার টিপুন এবং এটি বেশ সহজ সংরক্ষণ করুন

আরও বিশদের জন্য ব্লগ পোস্টটি দেখুন http://vinurip.blogspot.com/2015/04/how-to-edit-contents-of-jar-file-on-mac.html


2

আপনি স্বল্পমেয়াদে মোকাবেলা করার চেয়ে এটি আরও বেশি কাজ হতে পারে তবে আমি দীর্ঘমেয়াদে সন্দেহ করি যে ম্যানুয়ালি জারের তৈরির পরিবর্তে পিঁপড়া (বা মাভেন , এমনকি বাজেল ) ব্যবহার করা আপনার পক্ষে খুব উপকারী হবে would । এইভাবে আপনি পিঁপড়ের ফাইলটিতে ক্লিক করতে পারেন (আপনি যদি একটিলপ ব্যবহার করেন) এবং জারটি পুনর্নির্মাণ করতে পারেন।

বিকল্পভাবে, আপনি সম্ভবত এই কনফিগার ফাইলগুলিকে জারে আসলেই না রাখতে চান - আপনি যদি এই ফাইলগুলি নিয়মিত প্রতিস্থাপনের প্রয়োজন মনে করেন, বা যদি এটি একাধিক পক্ষগুলিতে বিতরণ করা হয়, তবে কনফিগারেশন ফাইলটির অংশটি হওয়া উচিত নয় জার এ সব।


4
রাজি। তবে, আপনি জেআর-তে একটি "ডিফল্ট" কনফিগারেশন ফাইল রাখতে চান, সুতরাং যদি বাহ্যিক কোনওরূপে (দুর্নীতিগ্রস্থ, মুছে ফেলা ইত্যাদি) ঘটে থাকে তবে আপনি ডিফল্ট কনফিগারেশনে ফিরে যেতে পারেন।
টমাস 22

সত্য - যদিও আমি জানি না যে তাদের অ্যাপ্লিকেশনগুলি তাদের কনফিগারেশন ফাইলগুলি ব্যতীত চলতে থাকবে ...
dimo414

1

ডিএফএ যা বলেছিল তার প্রসারিত করার কারণটি হ'ল জার ফাইলটি জিপ ফাইলের মতো সেট আপ করা হয়েছে। আপনি যদি ফাইলটি সংশোধন করতে চান তবে আপনাকে অবশ্যই সমস্ত এন্ট্রি পড়তে হবে, আপনি যে পরিবর্তন করতে চান সেটি সংশোধন করতে হবে এবং তারপরে জার ফাইলটিতে এন্ট্রিগুলি আবার লিখতে হবে। আমাকে আগে এটি করতে হয়েছিল এবং এটি করার জন্য আমি কেবল এটিই খুঁজে পেতে পারি।

সম্পাদনা

নোট করুন যে এটি জাভা জার ফাইল সম্পাদকদের অভ্যন্তরীণ ব্যবহার করছে, যা ফাইল স্ট্রিম। আমি নিশ্চিত যে এটি করার একটি উপায় আছে, আপনি পুরো জারটি মেমরিতে পড়তে পারেন, সমস্ত কিছু সংশোধন করতে পারেন, তারপরে কোনও ফাইল স্ট্রিমে আবার লিখতে পারেন। এটিই আমি বিশ্বাস করি যে 7-জিপ এবং অন্যান্যর মতো ইউটিলিটিগুলি করছে যা আমি বিশ্বাস করি যে লেখার সময় একটি জিপ শিরোনামের টোসি সংজ্ঞায়িত করতে হবে। তবে আমি ভুল হতে পারি।


1

হ্যাঁ আপনি করতে পারেন, এসকিউএলাইট ব্যবহার করে আপনি জার ফাইলের মধ্যে থেকে একটি ডাটাবেস থেকে পড়তে বা লিখতে পারেন, যাতে আপনাকে উত্তোলন করতে হবে না এবং তারপরে এটি আবার জার করতে হবে না, আমার পোস্টটি অনুসরণ করুন http://shoaibinamdar.in/blog/? পি = 313

"জেডিবিসি: স্ক্লাইট :: রিসোর্স:" সিনট্যাক্সটি ব্যবহার করে আপনি জার ফাইলের মধ্যে থেকে একটি ডাটাবেসে পড়তে এবং লিখতে সক্ষম হবেন


4
হাই, স্ট্যাকওভারফ্লোতে আপনাকে স্বাগতম। আমি আপনার পোস্ট থেকে সংক্ষিপ্ত বিবরণ সরিয়েছি। সাধারণ পাঠ্য বার্তায় স্টাইল শর্টহ্যান্ড উপযুক্ত নয়। আমি মনে করি এই উত্তরটি প্রশ্নের উত্তরের উত্তর হবে যদি আপনি নিজের ব্লগ থেকে আরও কিছু বিবরণ উত্তরের মধ্যে অন্তর্ভুক্ত করেন যাতে আপনার উত্তর পড়া কেউ ব্লগ না পড়লেও কিছু শিখেন, বা এটি সরানো হয়ে যায় কিছু ভবিষ্যতের তারিখে অন্য ইউআরএল এ।
ফ্লেক্সো

1

পরীক্ষা করে দেখুন TrueZip

এটি ভার্চুয়াল ফাইল সিস্টেম এপিআইয়ের মাধ্যমে আপনি যা চান (একটি জার ফাইলের অভ্যন্তরে ইনলাইন ফাইল সম্পাদনা করতে চান) তা করে does এটি নেস্টেড আর্কাইভগুলি (একটি জারের ভিতরে জার) সমর্থন করে।


1

প্রাক্তনের জন্য জার ফাইলটি বের করুন। উইনার এবং সিএভিএজে ব্যবহার করুন:

কাভাজ জাভা ডেকম্পিলার একটি গ্রাফিকাল ফ্রিওয়্যার ইউটিলিটি যা CLASS ফাইলগুলি থেকে জাভা উত্স কোডটি পুনর্গঠন করে।

আপনার যদি প্রয়োজন হয় তবে ভিডিও টিউটোরিয়ালটি এখানে রয়েছে: https://www.youtube.com/watch?v=ByLUeem7680


ভাল, "CAVAJ ব্যবহার করুন" সফ্টওয়্যারটি এখানে উত্তর। কোনও অতিরিক্ত ব্যাখ্যা প্রয়োজন হলে লিঙ্কটি কেবল সংযোজন।
টমাসজ মুলারসাইক্ক

0

যতক্ষণ না এই ফাইলটি .class নয়, অর্থাত্ রিসোর্স ফাইল বা ম্যানিফেস্ট ফাইল - আপনি পারবেন।


এবং কীভাবে, নিষ্কাশন এবং পুনরায় জার্নিং ছাড়াই?
ব্যবহারকারী 85421

0

উইন্ডোজে এটি করার সবচেয়ে সহজ উপায়টি হ'ল উইনআরআর :

  1. ফাইলটিতে ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে "উইনআরআর উইল ওপেন" নির্বাচন করুন।
  2. সম্পাদনা করার জন্য ফাইলটিতে নেভিগেট করুন এবং এটি ডিফল্ট সম্পাদনায় খোলার জন্য এটিতে ডাবল-ক্লিক করুন।
  3. পরিবর্তনগুলি করার পরে, সম্পাদকটি সংরক্ষণ করুন এবং প্রস্থান করুন।
  4. এরপরে একটি কথোপকথন উপস্থিত হয়ে জিজ্ঞাসা করা হবে যে আপনি সংরক্ষণাগারে ফাইলটি আপডেট করতে চান - "হ্যাঁ" চয়ন করুন এবং জেআর আপডেট হবে।

0

উপরের উত্তরগুলির বেশিরভাগ বলে যে আপনি এটি ক্লাস ফাইলের জন্য করতে পারবেন না।

এমনকি আপনি যদি ক্লাস ফাইল আপডেট করতে চান তবে আপনি এটিও করতে পারেন। আপনাকে যা করতে হবে তা হ'ল জারের মধ্যে আপনার ওয়ার্কস্পেস থেকে ক্লাস ফাইলটি টানুন এবং ফেলে দিন।

আপনি যদি ক্লাস ফাইলে আপনার পরিবর্তনগুলি যাচাই করতে চান, আপনি জেডি-গুইয়ের মতো একটি ডিকম্পাইলার ব্যবহার করে এটি করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.