Jar class
jar But if you place foo. the only format that handles audio and image files as well as class files. 2 Jan 12, 2014 · 5. after that click whatever 2 files do you want to compare and right-click and click compare archives. Itch. For example: Jar 파일은 zip으로 압축이 되어있습니다. For example, the class path entry foo/* specifies all JAR files in the directory named foo. find <%PATH of the Folder where you need to search%> -name "*. There is a section that says "JAR class name — Enter entry point of game, eg. auth. java 2) Then create a jar from these compiled class (jar command) Example : Aug 30, 2021 · > java -jar project. class I've noticed it does this on bigger classes. Main --module-version 1. Jan 8, 2024 · The latest release at the time of writing is guava-31. class` Example 2: use an existing manifest file 'mymanifest' and archive. Jan 8, 2024 · Now, we’ll run the compiled test class using the Junit console launcher: $ java -jar junit-platform-console-standalone-1. The first argument is the name of a JAR file instead of a startup class name. 3 classes. As a side note, in java, the convention is to use capitals for a class name, so you may want to use: GetSomething. From now you can use the inner classes of the jars you added. The 'e' flag (for 'entrypoint') creates or overrides the manifest's Main-Class attribute. Copy. In order for this option to work, the manifest of the JAR file must contain a line of the form Main-Class:classname. class file represents; or (b) you can use a library that does this for you. I have this in the main pom file (packaging: Pom). Feb 5, 2017 · This Java API also comes with a . It’s simply a list of key and value pairs, called headers or attributes, grouped into sections. jar to the classpath entry in the manifest file of MarcTry. These headers supply metadata that help us describe aspects of our JAR such as the versions of packages, what application class to Apr 19, 2014 · A jar is merely a container. Rajitha Bhanuka. jar com. It can also be used to convert a JSON string to an equivalent Java object. myapp. jar -classpath foo. NB: you will probably need to specify where the sources are for each jars (right click on a jar > Properties > Java Jan 3, 2022 · JAR files contain CLASS files, application resources, and an optional manifest file (META-INF/ MANIFEST. Use it to specify the application entry point without editing or creating the manifest file. To edit your class file you can use a tool like classeditor. jar Main-Class: YourMainClass Compile all your classes and run jar cfm Testing. The other approach you can use is a Class Editor, which let you edit The JarFile class is used to read the contents of a jar file from any file that can be opened with java. class Bar. jar into the class path. itch. answered May 7, 2018 at 4:07. Even if you want to take advantage of advanced Apr 21, 2011 · A Jar file is an Zip archive containing one or multilple java class files. drivers=oracle. jar will be searched on the same level as MyJar. Turned out, we had a class in our project that had a file (so Eclipse kept it on the classpath) but no actual class defined in the file (the file only had imports and a class comment probably a merge gone wrong). class in the directory target/classes. The class name will always be com. To load classes in JAR files within a JAR file into the class path, you must write custom code to load those classes. Finally, we augment and refine our method to reach a better solution. class ), or simply A, B, C) Each . This will open a dialog box. Java Class Finder tool to search . represents current directory and semicolon separates each classpaths. jar archive. set classpath = . Note: Alternatively, you can use the forName() method of the java. No magic: jvm opens manifest and takes name of main class and other jars from there and virtually creates command line like first one. * * @param context The jar file that contained the class file that represents this class will be found. ) means current directory. jar 2: projectname. I found this question on this site, and one of the answers reads, "In simple way you can pack your java classes to jar file then In C# use Process class for execute and map IO stream. jar where the Main-Class attribute value in the manifest is set to MyApp: Aug 2, 2012 · There is no easy way to edit class file, because class files are binaries (you won't find source code in there. ;utilities. May 12, 2011 · The classpath is ignored when you are using the "-jar" switch. ClassLoader. java and compile. 4. Cadoiz. This is unlike the Windows/UNIX PATH environment variable which just lists directories containing executables. ClassFinder does provide a CLI as well as a GUI. jar contains another JAR file called MyUtils. May 11, 2024 · Output in our example will be named as core-java-jar-with-dependencies. From combining some solutions above I managed to achieve the following working code: String surroundingJar = null; // gets the path to the jar file if it exists; or the "bin" directory if calling from Eclipse. jar --main-class com. Since it is a zip file it is capable of compressing the data that you put into it. The Manifest File. Hello 这样JVM会自动在hello. Jan 25, 2024 · The unzip command is a commonly used utility for working with ZIP files from the Linux command-line. URLs supplied after --jars must be separated by commas. jar and . If you try to run this jar with java -jar App. ZIP compression and may optionally be digitally signed using the jarsigner tool included with the Java SDK. When the components of an applet or application (files, images and sounds) are combined into a single archive, they can be The jar command is a general-purpose archiving and compression tool, based on the ZIP and ZLIB compression formats. As per the Java cli documentation you can not combine -cp and -jar in the same command. exe wrapper. The jar command is a general-purpose archiving and compression tool, based on ZIP and the ZLIB compression format. jar with the name of your own JAR file: java -jar yourfile. To find the string in the list of jar file. jar don't match the actual packages in the project. ;filename. jar API in the Java platform. A JAR file is essentially a zip file that contains an optional META-INF directory. jar's manifest to load classes in MyUtils. Case-5 fails because classloader relative resolving is with respect to the classloader. Create a directory build. The AccessControlContext of the thread that created the instance of Aug 25, 2022 · $ javac Example. jar --update --file foo. When no parameters are provided ClassFinder will try to instantiate a GUI on an X11 terminal. Then it will search all the matching class files. Jun 28, 2023 · First, we explore both the class and JAR formats in general. Next, let’s extract Guava’s JAR file using the jar command: Probably, this is the most popular Java decompiler, but primarily of this age only. High availability package that provides session clustering functionality Jan 8, 2024 · A Spring Boot application’s main class is a class that contains a public static void main() method that starts up the Spring ApplicationContext. Class class to load the JDBC drivers directly. The below command shows the results with the file name and jar file name. 1. You don't need a main method to create a package, nor to import or use the package/library in a separate application. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of. sql. javap -c <name of java class file>. class” files. A nice GUI: It works with compilers from JDK 1. It features an online live demo version that is actually fully functional! Oct 31, 2017 · To explain you more, I have import x. MyClass. Now your jar will be created in given location Jan 8, 2024 · It is possible to partially automate this step even with the legacy approach by setting the jdbc. 1,568 22 32. jar:myOtherLib. jar;ldom. /build *. jar --class-path target --select-class com. jar;C:\java\MyClasses\myclassesAnother. May 1, 2013 · java -jar MyJar. By default, if the main class isn’t explicitly specified, Spring will search for one in the classpath at compile time and fail to start if none or multiple of them are found. It also contains metadata. This includes programs like 7-Zip, PeaZip and jZip. jar *. jar ‘binary’ files. jar utility. 0. Hierarchy For Package java. Any URL that ends with a '/' is assumed to refer to a directory. Aug 6, 2009 · Class path entries can contain the basename wildcard character *, which is considered equivalent to specifying a list of all the files in the directory with the extension . Executing a JAR Without the Main Manifest Attribute. io. You should on the first hand prevent these type of Fixes and Changes. zip. class Create a versioned or multi-release JAR, foo. In this example, the classes/com Apr 29, 2024 · To create a . jar;other. Enter the class name. jar MANIFEST. jar 's every time your write java code - using libs from the jdk. Defaults to UTF-8. For example: Find$1. Make sure the path to jar. These tasks are among the most common uses of JAR files, and you can realize many JAR file benefits using only these basic features. Art. Tomcat Catalina Ant tasks for working with the Manager web application. class and . For transportation and deployment Mar 30, 2013 · Unfortunately, Java doesn't provide an easy way to list classes in the "native" JRE. JAR files may be created with the jar tool, and they can be accessed using Java's java. 1)JSmooth . /custom_lib. jar API. In this case, the JAR file is an executable JAR. class file as you have done and save it as . java file which shows how to use the library but I cannot see the code inside the . while setting the classpath a single dot (. java ( . Aug 18, 2013 · I also had a different, degenerate case of this problem. lang. class added manifest adding: Example. databind. Nilashish C. First, let’s see a quick example of how to compile our classes and create an executable JAR with a manifest file: $ javac com/baeldung/jarArguments/*. JAR. domain. 1-SNAPSHOT. java. Jan 25, 2024 · 2. jar" -print -exec zipgrep "jar$|<%STRING THAT YOU NEED TO FIND>" '{}' \; To find the class name in the list of jar file. The x option indicates we wish to extract files, the f option indicates from a jar file, the jar-filename is the filename of the jar file to extract from and the archived-files are the files to extract. java -cp MarcTry. Furthermore, it summarizes the number of files in the sample JAR files. Therefore, we can use the -l option of the unzip command to list the content of a JAR file without extracting it: $ unzip -l stripe-0. jar Package Hierarchies: All Packages Aug 1, 2013 · Under Java select JAR file, click on Next (Don`t change any properties) select Jar file location where you want to save and click on Next. javac -d . This must be a very basic question for Java developers, but what is the best way to find the appropriate jar file given a class name? For example, given "com. MF and is located under the META-INF directory in the JAR. [ 3 containers found ] Jan 6, 2017 · 0. We tested the code in this tutorial on Debian 11 (Bullseye) with GNU May 7, 2018 · Here are few steps you can apply. class. Then you just use standard imports of the classes in the . . A quick way would be just to include your JAR(s) after the -cp: on Windows java -cp C:\java\MyClasses\myclasses. Select your particular class and then finish. jar name into META-INF/manifest. edited Oct 15, 2021 at 11:20. User classes are classes which build on the Java platform. edited May 24, 2015 at 9:48. So, to answer your question: no. 9. That list is included in the driver and executor classpaths. The JarFile class is used to read the contents of a jar file from any file that can be opened with java. 1. javap -c <name of java class file> > decompiled. Couple of things i found useful. You have all the strings your class is using hard-coded in the class file. Open a command prompt. The registerDriver() method takes as input a "driver" class, that is, a class that implements the java. class Example. A JAR file can be created by the command-line jar tool, or by using the java. As you jar files are in current directory, you just need to go to your current directory using cd command in DOS prompt, then use. Example 1: to archive two class files into an archive called classes. class file versions. commandline. Oct 26, 2016 · /** * If the provided class has been loaded from a jar file that is on the local file system, will find the absolute path to that jar file. Create a project in Eclipse with that java file, the original JAR as library, and all its dependencies. WSSubject" JAR file is a file format based on the popular ZIP file format and is used for aggregating many files into one. jar文件里去搜索某个类。 那么问题来了:如何创建jar包? Aug 4, 2019 · And the following command creates an executable jar file with the main class is specified in the external manifest file (manifest. You only need a main method if you want the package to be able to run as a standalone application. catalina. class(in = 682) (out= 456)(deflated 33%) $ file Example. Jan 25, 2024 · This manifest file has to have a main manifest attribute that defines the path to the class containing our main method. You could even pull the "Class-path" out of various JAR files' manifests and incorporate that The character set used to encode JAR metadata like file names. maybe some strings, but not java code). class, in the root of the given directories or in the root of the . security. I exploit reflection to circumvent the fact that you ain't really supposed to do this (that is, modify the class path after the JVM has started). The current directory is not in the CLASSPATH by default when you specify a value for -cp. The Manifest can be used to specify meta-information about the jar file and its entries. May 23, 2017 · If you want to do hacky things with your application classpath, a simpler approach is to create a wrapper script that assembles the effective classpath however you want to, then launches the application with a "-cp" option. So if the only thing you would like to change is some This doesn't work, as the newly created App. By using the Class-Path header in the manifest, you can avoid having to specify a long -classpath flag when invoking Java to run your application. I changed to the configuration that you suggested and I still have the same problem. Create a folder and create another 2 folders inside it like old and new. baeldung. The -classpath command line argument (to both java and javac) expect that you will list specific JAR files (and/or "exploded" directories containing class files). It can be used while creating or updating a JAR file. jar, that places the files in the classes' directory at the root of the JAR, and the files in the classes-16 directory in the META-INF/versions/16 directory of the JAR. drivers system property: java -Djdbc. jar, you cannot use the Class-Path header in MyJar. A jar archive can be used as a class path entry, whether or not it is compressed. Jul 27, 2019 · 1. jar Then the foo. Apache Maven Shade Plugin Jan 19, 2022 · When I look at my classes in the JAR file, a few of my classes contain the name of that class, a dollar sign, then a number. 3. class files, and then determine which Java class each . ) into one file to distribute application software or libraries on the Java platform. Initially, the jar command was designed to package Java applets (not supported since JDK 11) or applications; however, beginning with JDK 9, users can use the jar command to create modular JARs. Otherwise, the URL is assumed to refer to a JAR file which will be opened as needed. txt): jar cfm SwingEmailSender. jar mymanifest -C foo/ . E. /hello. 22. Using PkgDiff Gson is a Java library that can be used to convert Java Objects into their JSON representation. loadClass () method is responsible for loading the class definition into runtime. libraries) that might be referenced by the jar you are trying to decompile. jar or . MainClass. The Class-Path header takes the following form: Class-Path: jar1-name jar2-name directory-name/jar3-name. class custom_lib. String jarDir = new File(ClassLoader. foo. ZipFile with support for reading an optional Manifest entry. jar-file is the existing JAR file that is to be updated. ). On selecting class file, at the bottom of the dialog box, it shows the jar file in the class path which contains this class. Class JarFile. 0 Created-By: Bundle Class-Path: . Constructors JarInputStream(InputStream in) : Creates a new JarInputS Nov 10, 2017 · Rhyzue 6 years ago (2 edits) Upload here, of course. ROMANIA_engineer. jdbc. jar, i. class 파일은 Java 파일을 바이트코드로 컴파일하면서 생성되는 산출물입니다. It extends the class java. 26. jar mypackage. io. class: compiled Java class data, version 55. " I am semi-familiar with the Process Feb 25, 2021 · Next, make sure you have jars containing defintions (sic!) for any external classes (i. co. exe is part of the system path variable. answered Feb 16, 2018 at 15:51. jar mallet-2. jar: Java archive data (JAR) Then I tried various ways to execute the JAR, but none of them worked: Feb 11, 2021 · The JarInputStream class is used to read the contents of a JAR file from any input stream. make sure the jar file name by going to target folder of the project. However, the jar command was designed mainly to package Java applets or applications into a single archive. TicTacToe2 () ? public TicTacToe2 () ? new TicTacToe2 () ? io. A class file has a subpath name that reflects the class's fully-qualified name. c stands for create archive f indicates that you want to specify file v is for verbose input m means that we will pass custom manifest file Mar 4, 2023 · jar包实际上就是一个zip格式的压缩文件,而jar包相当于目录。如果我们要执行一个jar包的class,就可以把jar包放到classpath中: java -cp . This makes the usage of libraries (consisting of multiple classes) more handy. 1-jre. Alternatively, specify the full path to jar which can be found under /bin in the JDK folder. Jun 1, 2015 · 3. Written in C++, so very fast. to get the JVM assembly code. jar — Common Annotations 1. util. class file and put it again inside the original JAR. The java. The main class has to be included in that JAR file. Is this because the classes get so big, it compiles it into multiple classes? The JarFile class is used to read the contents of a jar file from any file that can be opened with java. May 11, 2024 · A JAR file can have one entry point set in its manifest file. -jar Execute a program encapsulated in a JAR archive. fasterxml. 0 $ jar cvf Example. OracleDriver. Class path entries can contain the basename wildcard character *, which is considered equivalent to specifying a list of all the files in the directory with the extension . A user interface to extract source code from . You're actually using classes ( import) from other . MF). all the files in the foo/ directory into 'classes. Nov 10, 2011 · Look at the Sun's official documentation: Setting the class path to understand your options. In the project explorer, you should have something with an icon looking like a pile of book like those: just expand the one containing your dependencies (probably labelled "Referenced Librairies") and you can browse as usual. Sometimes I just unpack all dependent JARs and pack their content into MyJar. answered Jan 6, 2021 at 7:34. Dec 2, 2015 · 13. jar> *. Java Decompiler (Yet another Fast Java decompiler) has: Explicit support for decompiling and analyzing Java 5+ “. This class provides a basic service for managing a set of JDBC drivers. when your jar is executable you use the following command line: java -jar art. Java decompilers online: *JAD, *JDCore, *Procyon, *Fernflower, *CFR. answered Jun 1, 2015 at 6:57. jar no main manifest attribute, in project. Don`t make any changes, click on Next . Fewer dependencies this way. . May 3, 2024 · annotations-api. getSystemClassLoader(). Is it helpful to know that each of my modules and the main project all have a target folder that contains 2 jar files after every build? 1: projectname-jar-with-dependencies. Next, we compile a simple dataset. The Manifest can be used to store meta-information about the JAR file and its entries. For example, if MyJar. jar Foo. "). Try this if you're on Windows: java -cp . jar Our tool generated a report showing changes in our sample JAR files: The report shows changes in our binary. Viewing content of a JAR file The t option is used in conjunction with the f and v to list table of contents of a jar file. When the JVM requests a class, the class loader tries to locate the class and load the class definition into the runtime using the fully qualified class name. However, we can run it by Apr 30, 2012 · 11. Stultuske. Go to the directory where you have your . The Manifest can be used to specify meta-information about the jar file 137. Jan 8, 2024 · Learn how to get names of classes inside a given JAR file and how to load classes from a JAR file at runtime. driver. This could be solved by creating the jar Press Ctrl + Shift + T. you can give the exact path to the target folder to point to the jar when you apply spark-submit command. When using spark-submit with --master yarn-cluster, the application JAR file along with any JAR file included with the --jars option will be automatically transferred to the cluster. if there are no errors, in the build directory you should have your class tree. class Find$3. The f option indicates that the JAR file to update is specified on the command line. clean the project and package again. 6. class 파일들이 있습니다. jar will have the class App. For example, this command creates app. then open the first folder using IntelliJ. You may also redirect the output to a text file for better visibility. jar abc. xyz. Example (Unix way) : javac -cp "myLib. Ramesh Maharjan. My code is pretty simple and I use eclipse. Oct 8, 2008 · Manifest-Version: 1. move to the build directory and do a. Mar 22, 2012 · 9. txt. backward-compatible with existing applet code. jar — Implementation of the Catalina servlet container portion of Tomcat. Eclipse will import them when you'll start using them. e. You can change this property but it is not recommended as JVMs expect JAR metadata to be encoded using UTF-8 JAR file is a file format based on the popular ZIP file format and is used for aggregating many files into one. jar;marc4j. jar file into your classpath when compiling/running your code. jar, it will complain that it cannot find the App class. JRT). 2. y. 3. The syntax for the jar tool is almost identical to the syntax for the tar command. It is a file archive ā la tar or zip. jackson. As pointed out by @MichaelMyers, use. zip files for Java classes. ZipFile with support for reading an optional Manifest entry, and support for processing multi-release jar files. jar" *. 이 압축을 풀면 많은 . an open standard, fully extendable, and written in java. jar — Optional. They are compressed using . This includes the standard library classes (i. class 파일을 열면 Java 코드가 보이지 않기 때문에, 보고 싶다면 Java로 다시 디컴파일해야 합니다. jar will have multiple package s, so the only thing you have to do is Jan 25, 2024 · Let’s start by writing a script to identify the class in a jar. jar. JAR files are packaged with the ZIP file format, so you can use them for tasks such as lossless data compression, archiving, decompression, and archive unpacking. While a jar may have interesting information contained within its META-INF hierarchy, it has no obligation to specify the vintage of the classes within its contents. y belongs to a-4. jar, but the application which i am working has been developed long back, and I dono what version of a. 2. 8 up to JDK 1. TicTacToe2 ? Jun 29, 2015 · 0. A . Otherwise you should specify the cp argument with. In order to find out which Java version the jars are built or compiled, we can extract the jar file and use either javap or hexdump to check the . jar;another filename. catalina-ant. It enables you to bundle multiple files into a single archive file. Specify both jars with "-classpath" and execute the main class with the fully qualified name. pros – dependencies inside the jar file, one file only; cons – basic control of packaging our artifact, for example, there is no class relocation support; 2. There are a few open-source projects that can convert Java Dec 28, 2012 · Decompile the . May 11, 2024 · Class loaders are part of the Java Runtime Environment. Here . ibm. jar: `jar cvf classes. jar cvf YourJar. But if it required, you should have all the import class's code also in order to recompile the decompiled class, as they will be required at the time of compiling, but that might not be a feasible option. jar uk. This is because the packages inside App. txt -C build\classes . In eclipse, right click on a project->Propeties->Java Build Path->Add External JARs (Add JARs if the jar is inside the project's folder) and then choose your jar file. class files) and other data/resources related to that code. When it asks for class name, I'm not sure what it wants me to write. After that, we show a crude approach to searching for class files in all JAR files under a given directory. mf within MyJar. java $ file Example. The manifest file is named MANIFEST. Convert jar files to . java files. z, I know that x. catalina-ha. Apr 5, 2018 · 1) Compile the classes (javac command) If you don't have any jar dependencies required at compile time, you should not need to set the classpath. Cool on Linux/Unix Apr 20, 2024 · $ java -jar jarcomp_02. jar Apr 4, 2017 · 2. Finally, select Main Class location. Thank you @NilsH. 0 -C foo/module-info. Okey same problem because it is not an executable jar, there is no main class in the jar manifest. Another way to open the file is to use the following command in Command Prompt, replacing yourfile. It will show JAR Package Options. MyGame. add relevant jar files to the folders. Get the modified . 7. g. Outdated, unsupported and does not decompile correctly Java 5 and later. MF *. exe file. class Find. jar': jar cvfm classes. the preferred way to bundle the pieces of a java applet. Change the . Jan 20, 2009 · You need to put the . Jul 26, 2023 · A JAR (Java Archive) is a package file format typically used to aggregate many Java class files and associated metadata and resources (text, images, etc. To find user classes, the launcher refers to the user class path -- a list of directories, JAR archives, and ZIP archives which contain class files. getAbsolutePath(); 1. That leaves you with a couple of options: (a) for any given JAR file, you can list the entries inside that JAR file, find the . Length Date Time Name. ZipInputStream with support for reading an optional Manifest entry. JDBC 4 Approach. You can read about adding jars to the classpath Dec 12, 2013 · Here's some code I use to load a jar dynamically at run-time. 9,367 1 25 37. edited Dec 29, 2012 at 18:49. answered Aug 27, 2012 at 19:26. Or this if you're on Linux: java -cp . or add marc4j. jar -cf <MyJar. class Find$2. This class loader is used to load classes and resources from a search path of URLs referring to both JAR files and directories. 8. JAR is: the only archive format that is cross-platform. FirstUnitTest. websphere. Nov 10, 2015 · Case-3 fails because class relative resolving is with respect to the Class, so "top" means "/com/example/top", but "/top" means what it says. Run java compilation from the command line. Jul 19, 2023 · Since JAR files are compressed with ZIP, any file decompressor can open one to see the contents that are inside. getResource(". Java ships the jar command to create, update, view, and extract JAR files. Directories and Jar files are added to the classpath and available to the ClassLoader at runtime to find particular classes inside of it. jar from class files, navigate to the folder containing your class file and run this command: Windows Command Prompt. Archive: stripe-0. A JAR file can be used as a class path entry, whether or not it's compressed. jar: Class-Path: foo. in the same directory. If you wish to extract a file from the Jar file, use the following command: jar xf jar-filename archived-files. It also indicates the overall size of the sample JAR files. jar Example. :utilities. jar manifest. Anyway, deleting the file solved the issue. getPath()). jar file have they used, I am worried about the version because, some of the classes have been depreciated from the jar of the older version (I feel so), because, even though I have jar in the library, I find the If you jar is not "executable" you run it as following: java -cp art. Jan 8, 2024 · A jar file in the Java ecosystem consists of a collection of class files bundled together. When this property is specified, the driver manager will automatically attempt to load the specified JDBC driver. ObjectMapper for this scenario. Driver interface, as is the case with OracleDriver. A classpath entry consisting simply of * expands to a list of all the Aug 21, 2012 · 12. The Manifest can be used to specify meta-information about the jar file The basic command for adding files has this format: jar uf jar-file input-file(s) In this command: The u option indicates that you want to update an existing JAR file. RandomAccessFile . 0, and others ( Jikes, JRockit, etc. jar file contains compiled code (*. How the Java Launcher Finds User Classes. The script uses the jar and grep command to print the appropriate jar: jar -tf $1 | grep $2 && echo "Found in : $1" Here $1 is the jar file path, and $2 is the class name. In this tutorial, we’ll show how to pack a simple Java class as a self-executing JAR and demonstrate the importance of a main manifest attribute for a successful execution. This will give us test run results: Test run finished after 60 ms. And according to the description, these standard library classes come with up to version 8 of Java in the form of the file rt . Typical usage to combine files into a jar file is: C:\Java> jar cf myFile. An archive becomes a modular JAR when you include a module descriptor, module-info. gn dm oj fo nb fi lb ge no ci