Searching...
Friday, 17 January 2014

How to read contents of a jar file using JarInputStream ?

22:07

The JarInputStream class is used to read the contents of a JAR file from any input stream. Here is one simple example to read a jar and printing the jar contents.

JarInputStream Example

package com.pretech;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
public class JarInputStreamTest {
	public static void main(String[] args) {
		try {
			File file = new File("junit-4.11.jar");
			FileInputStream fis = new FileInputStream(file);
			JarInputStream jis = new JarInputStream(fis);
			JarEntry je;
			while ((je = jis.getNextJarEntry()) != null) {
				System.out.println(je.getName());
			}
			jis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Output



junit/
junit/extensions/
junit/framework/
junit/runner/
junit/textui/
org/
org/junit/
org/junit/experimental/
org/junit/experimental/categories/
org/junit/experimental/max/
org/junit/experimental/results/
org/junit/experimental/runners/
org/junit/experimental/theories/
org/junit/experimental/theories/internal/
org/junit/experimental/theories/suppliers/
org/junit/internal/
org/junit/internal/builders/
org/junit/internal/matchers/
org/junit/internal/requests/
org/junit/internal/runners/
org/junit/internal/runners/model/
org/junit/internal/runners/rules/
org/junit/internal/runners/statements/
org/junit/matchers/
org/junit/rules/
org/junit/runner/
org/junit/runner/manipulation/
org/junit/runner/notification/
org/junit/runners/
org/junit/runners/model/
LICENSE.txt
junit/extensions/ActiveTestSuite$1.class
junit/extensions/ActiveTestSuite.class
junit/extensions/RepeatedTest.class
junit/extensions/TestDecorator.class
junit/extensions/TestSetup$1.class
junit/extensions/TestSetup.class
junit/extensions/package-info.class
junit/framework/Assert.class
junit/framework/AssertionFailedError.class
junit/framework/ComparisonCompactor.class
junit/framework/ComparisonFailure.class
junit/framework/JUnit4TestAdapter.class
junit/framework/JUnit4TestAdapterCache$1.class
junit/framework/JUnit4TestAdapterCache.class
junit/framework/JUnit4TestCaseFacade.class
junit/framework/Protectable.class
junit/framework/Test.class
junit/framework/TestCase.class
junit/framework/TestFailure.class
junit/framework/TestListener.class
junit/framework/TestResult$1.class
junit/framework/TestResult.class
junit/framework/TestSuite$1.class
junit/framework/TestSuite.class
junit/framework/package-info.class
junit/runner/BaseTestRunner.class
junit/runner/TestRunListener.class
junit/runner/Version.class
junit/runner/package-info.class
junit/textui/ResultPrinter.class
junit/textui/TestRunner.class
junit/textui/package-info.class
org/junit/After.class
org/junit/AfterClass.class
org/junit/Assert.class
org/junit/Assume.class
org/junit/Before.class
org/junit/BeforeClass.class
org/junit/ClassRule.class
org/junit/ComparisonFailure$ComparisonCompactor.class
org/junit/ComparisonFailure.class
org/junit/FixMethodOrder.class
org/junit/Ignore.class
org/junit/Rule.class
org/junit/Test$None.class
org/junit/Test.class
org/junit/experimental/ParallelComputer$1.class
org/junit/experimental/ParallelComputer.class
org/junit/experimental/categories/Categories$CategoryFilter.class
org/junit/experimental/categories/Categories$ExcludeCategory.class
org/junit/experimental/categories/Categories$IncludeCategory.class
org/junit/experimental/categories/Categories.class
org/junit/experimental/categories/Category.class
org/junit/experimental/max/CouldNotReadCoreException.class
org/junit/experimental/max/MaxCore$1$1.class
org/junit/experimental/max/MaxCore$1.class
org/junit/experimental/max/MaxCore.class
org/junit/experimental/max/MaxHistory$1.class
org/junit/experimental/max/MaxHistory$RememberingListener.class
org/junit/experimental/max/MaxHistory$TestComparator.class
org/junit/experimental/max/MaxHistory.class
org/junit/experimental/results/FailureList.class
org/junit/experimental/results/PrintableResult.class
org/junit/experimental/results/ResultMatchers$1.class
org/junit/experimental/results/ResultMatchers$2.class
org/junit/experimental/results/ResultMatchers$3.class
org/junit/experimental/results/ResultMatchers.class
org/junit/experimental/runners/Enclosed.class
org/junit/experimental/theories/DataPoint.class
org/junit/experimental/theories/DataPoints.class
org/junit/experimental/theories/ParameterSignature.class
org/junit/experimental/theories/ParameterSupplier.class
org/junit/experimental/theories/ParametersSuppliedBy.class
org/junit/experimental/theories/PotentialAssignment$1.class
org/junit/experimental/theories/PotentialAssignment$CouldNotGenerateValueException.class
org/junit/experimental/theories/PotentialAssignment.class
org/junit/experimental/theories/Theories$TheoryAnchor$1$1.class
org/junit/experimental/theories/Theories$TheoryAnchor$1.class
org/junit/experimental/theories/Theories$TheoryAnchor$2.class
org/junit/experimental/theories/Theories$TheoryAnchor.class
org/junit/experimental/theories/Theories.class
org/junit/experimental/theories/Theory.class
org/junit/experimental/theories/internal/AllMembersSupplier$1.class
org/junit/experimental/theories/internal/AllMembersSupplier$MethodParameterValue.class
org/junit/experimental/theories/internal/AllMembersSupplier.class
org/junit/experimental/theories/internal/Assignments.class
org/junit/experimental/theories/internal/ParameterizedAssertionError.class
org/junit/experimental/theories/suppliers/TestedOn.class
org/junit/experimental/theories/suppliers/TestedOnSupplier.class
org/junit/internal/ArrayComparisonFailure.class
org/junit/internal/AssumptionViolatedException.class
org/junit/internal/ComparisonCriteria.class
org/junit/internal/ExactComparisonCriteria.class
org/junit/internal/InexactComparisonCriteria.class
org/junit/internal/JUnitSystem.class
org/junit/internal/MethodSorter$1.class
org/junit/internal/MethodSorter$2.class
org/junit/internal/MethodSorter.class
org/junit/internal/RealSystem.class
org/junit/internal/TextListener.class
org/junit/internal/builders/AllDefaultPossibilitiesBuilder.class
org/junit/internal/builders/AnnotatedBuilder.class
org/junit/internal/builders/IgnoredBuilder.class
org/junit/internal/builders/IgnoredClassRunner.class
org/junit/internal/builders/JUnit3Builder.class
org/junit/internal/builders/JUnit4Builder.class
org/junit/internal/builders/NullBuilder.class
org/junit/internal/builders/SuiteMethodBuilder.class
org/junit/internal/matchers/StacktracePrintingMatcher.class
org/junit/internal/matchers/ThrowableCauseMatcher.class
org/junit/internal/matchers/ThrowableMessageMatcher.class
org/junit/internal/matchers/TypeSafeMatcher.class
org/junit/internal/requests/ClassRequest.class
org/junit/internal/requests/FilterRequest.class
org/junit/internal/requests/SortingRequest.class
org/junit/internal/requests/package-info.class
org/junit/internal/runners/ClassRoadie.class
org/junit/internal/runners/ErrorReportingRunner.class
org/junit/internal/runners/FailedBefore.class
org/junit/internal/runners/InitializationError.class
org/junit/internal/runners/JUnit38ClassRunner$1.class
org/junit/internal/runners/JUnit38ClassRunner$OldTestClassAdaptingListener.class
org/junit/internal/runners/JUnit38ClassRunner.class
org/junit/internal/runners/JUnit4ClassRunner$1.class
org/junit/internal/runners/JUnit4ClassRunner$2.class
org/junit/internal/runners/JUnit4ClassRunner.class
org/junit/internal/runners/MethodRoadie$1$1.class
org/junit/internal/runners/MethodRoadie$1.class
org/junit/internal/runners/MethodRoadie$2.class
org/junit/internal/runners/MethodRoadie.class
org/junit/internal/runners/MethodValidator.class
org/junit/internal/runners/SuiteMethod.class
org/junit/internal/runners/TestClass.class
org/junit/internal/runners/TestMethod.class
org/junit/internal/runners/model/EachTestNotifier.class
org/junit/internal/runners/model/MultipleFailureException.class
org/junit/internal/runners/model/ReflectiveCallable.class
org/junit/internal/runners/package-info.class
org/junit/internal/runners/rules/RuleFieldValidator.class
org/junit/internal/runners/statements/ExpectException.class
org/junit/internal/runners/statements/Fail.class
org/junit/internal/runners/statements/FailOnTimeout$StatementThread.class
org/junit/internal/runners/statements/FailOnTimeout.class
org/junit/internal/runners/statements/InvokeMethod.class
org/junit/internal/runners/statements/RunAfters.class
org/junit/internal/runners/statements/RunBefores.class
org/junit/matchers/JUnitMatchers.class
org/junit/matchers/package-info.class
org/junit/package-info.class
org/junit/rules/ErrorCollector$1.class
org/junit/rules/ErrorCollector.class
org/junit/rules/ExpectedException$ExpectedExceptionStatement.class
org/junit/rules/ExpectedException.class
org/junit/rules/ExpectedExceptionMatcherBuilder.class
org/junit/rules/ExternalResource$1.class
org/junit/rules/ExternalResource.class
org/junit/rules/MethodRule.class
org/junit/rules/RuleChain.class
org/junit/rules/RunRules.class
org/junit/rules/TemporaryFolder.class
org/junit/rules/TestName.class
org/junit/rules/TestRule.class
org/junit/rules/TestWatcher$1.class
org/junit/rules/TestWatcher.class
org/junit/rules/TestWatchman$1.class
org/junit/rules/TestWatchman.class
org/junit/rules/Timeout.class
org/junit/rules/Verifier$1.class
org/junit/rules/Verifier.class
org/junit/runner/Computer$1.class
org/junit/runner/Computer.class
org/junit/runner/Describable.class
org/junit/runner/Description.class
org/junit/runner/JUnitCore.class
org/junit/runner/Request$1.class
org/junit/runner/Request.class
org/junit/runner/Result$1.class
org/junit/runner/Result$Listener.class
org/junit/runner/Result.class
org/junit/runner/RunWith.class
org/junit/runner/Runner.class
org/junit/runner/manipulation/Filter$1.class
org/junit/runner/manipulation/Filter$2.class
org/junit/runner/manipulation/Filter$3.class
org/junit/runner/manipulation/Filter.class
org/junit/runner/manipulation/Filterable.class
org/junit/runner/manipulation/NoTestsRemainException.class
org/junit/runner/manipulation/Sortable.class
org/junit/runner/manipulation/Sorter$1.class
org/junit/runner/manipulation/Sorter.class
org/junit/runner/manipulation/package-info.class
org/junit/runner/notification/Failure.class
org/junit/runner/notification/RunListener.class
org/junit/runner/notification/RunNotifier$1.class
org/junit/runner/notification/RunNotifier$2.class
org/junit/runner/notification/RunNotifier$3.class
org/junit/runner/notification/RunNotifier$4.class
org/junit/runner/notification/RunNotifier$5.class
org/junit/runner/notification/RunNotifier$6.class
org/junit/runner/notification/RunNotifier$7.class
org/junit/runner/notification/RunNotifier$SafeNotifier.class
org/junit/runner/notification/RunNotifier.class
org/junit/runner/notification/StoppedByUserException.class
org/junit/runner/notification/package-info.class
org/junit/runner/package-info.class
org/junit/runners/AllTests.class
org/junit/runners/BlockJUnit4ClassRunner$1.class
org/junit/runners/BlockJUnit4ClassRunner.class
org/junit/runners/JUnit4.class
org/junit/runners/MethodSorters.class
org/junit/runners/Parameterized$Parameter.class
org/junit/runners/Parameterized$Parameters.class
org/junit/runners/Parameterized$TestClassRunnerForParameters.class
org/junit/runners/Parameterized.class
org/junit/runners/ParentRunner$1.class
org/junit/runners/ParentRunner$2.class
org/junit/runners/ParentRunner$3.class
org/junit/runners/ParentRunner$4.class
org/junit/runners/ParentRunner.class
org/junit/runners/Suite$SuiteClasses.class
org/junit/runners/Suite.class
org/junit/runners/model/FrameworkField.class
org/junit/runners/model/FrameworkMember.class
org/junit/runners/model/FrameworkMethod$1.class
org/junit/runners/model/FrameworkMethod.class
org/junit/runners/model/InitializationError.class
org/junit/runners/model/MultipleFailureException.class
org/junit/runners/model/NoGenericTypeParametersValidator.class
org/junit/runners/model/RunnerBuilder.class
org/junit/runners/model/RunnerScheduler.class
org/junit/runners/model/Statement.class
org/junit/runners/model/TestClass.class
org/junit/runners/package-info.class

0 comments: