2012-07-26 9 views
10

आइए कहें कि मैं एक्लिप्स में जावा कोड लिख रहा हूं और फिर इसे एक रननेबल .jar फ़ाइल के रूप में सहेजता हूं। कोड 100% आत्म-लिखित है, इसलिए अन्य स्रोतों से कोई आयात नहीं।क्या चलने योग्य जार (ग्रहण के माध्यम से) ट्रैकिंग जानकारी शामिल है?

क्या .jar फ़ाइल (फ़ाइल शीर्षलेख, ..) में कुछ भी मेरे पीसी या मेरे ग्रहण संस्करण के बारे में निजी डेटा रखता है?

+1

क्यों नहीं इसे खोलने के लिए और देखने होगा? आपको .class फ़ाइलों के बारे में चिंता करने की आवश्यकता नहीं है। आप पाएंगे कि उत्तर "नहीं" है, जब तक कि आप अपने क्लास-पथ में कठोर तारों को सुरक्षित न करें। – duffymo

+0

अपनी जार फ़ाइल में मैनिफेस्ट की जांच करें। यह एकमात्र ऐसा स्थान है जिसमें ऐसी जानकारी होनी चाहिए। –

उत्तर

13

हां, संभवतः वहाँ एक स्वत: उत्पन्न मैनिफ़ेस्ट फ़ाइल है (जार: META-INF/MANIFEST.MF)

यहाँ प्लगइन

Manifest-Version: 1.0 
Built-By: borisov andrey 
Build-Jdk: 1.7.0_05 
Created-By: Apache Maven 
Archiver-Version: Plexus Archiver 

के डिफ़ॉल्ट उत्पादन होता है आप कम से कम उपयोगकर्ता नाम देख सकते हैं मैनिफ़ेस्ट फ़ाइल को जोड़ा गया

अद्यतन: यदि आप Maven का उपयोग कर रहे हैं, तो आप कॉन्फ़िगर करने के लिए Maven जार प्लगइन चाहते हो सकता है

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>${maven-jar-plugin-version}</version> 
     <inherited>true</inherited> 
     <executions> 
     <execution> 
      <goals> 
      <goal>test-jar</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <archive> 
      <manifestEntries> 
      <Created-By>${java.version} (${java.vendor})</Created-By> 
      <Built-By>ME</Built-By> 
      <Implementation-Title>${project.name}</Implementation-Title> 
      <Implementation-URL>SOME URL if you want</Implementation-URL> 
      <Implementation-Version>${project.version}</Implementation-Version> 
      <Implementation-Vendor>your company</Implementation-Vendor> 
      <Implementation-Vendor-Id>your vendore id</Implementation-Vendor-Id> 
      </manifestEntries> 
     </archive> 
     </configuration> 
    </plugin> 
+4

'निर्मित-निर्मित' सामग्री मेवेन द्वारा जोड़ा गया है। यह जावा द्वारा "मानक" या आवश्यक नहीं है। –

+0

अच्छा बिंदु बीटीडब्ल्यू - धन्यवाद। लेकिन अभी भी मेटा-आईएनएफ/MANIFEST.MF –

+0

जांचना उचित है, बहुत धन्यवाद, अगर केवल उपयोगकर्ता नाम डिफ़ॉल्ट रूप से जोड़ा जाता है तो जावा प्रोग्रामिंग गोपनीयता के रूप में सुरक्षित होनी चाहिए। – Tom

0

मुझे आश्चर्य होगा अगर कोई भी रनने योग्य जार बनाते समय मेटाडेटा के रूप में सेट किया गया हो।

0

आपका runnable जार केवल resources, dependent libraries और उस में manifest.xml फ़ाइल .....

संबंधित मुद्दे