Short Question - About javac.c where is it?
mr rupplin
mearvk at outlook.com
Sat Jul 21 00:56:42 UTC 2018
Hello.
I look and find that we start here:
http://hg.openjdk.java.net/jdk/jdk/file/b0fcf59be391/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java
public Result compile(String[] argv, Context context)
and this leads to:
http://hg.openjdk.java.net/jdk/jdk/file/b0fcf59be391/src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java
comp.compile(args.getFileObjects(), args.getClassNames(), null, List.nil());
Which leads to genCode:
http://hg.openjdk.java.net/jdk/jdk/file/b0fcf59be391/src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java
JavaFileObject genCode(Env<AttrContext> env, JCClassDecl cdef) throws IOException
Which calls:
return writer.writeClass(cdef.sym);
And so I think if I've understood you (without a debugger running on this end) the JavaCompiler (in Java) will do a C compile on various C source code documents and share libraries and this will make the native binary "javac". Is that correct?
The file "javac" is a native binary that is produced with a JavaCompiler called from the "bash configure && make all" command?
Thanks!
😊 MR/
________________________________
From: Erik Joelsson <erik.joelsson at oracle.com>
Sent: Friday, July 20, 2018 6:56 PM
To: mr rupplin; build-dev at openjdk.java.net
Subject: Re: Short Question - About javac.c where is it?
Hello Max,
Javac, like most of the command line tools in the JDK is written in
Java, so to look at the actual program, I would recommend starting here
(assuming current mainline at http://hg.openjdk.java.net/jdk/jdk):
src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java
Most of the executables in the JDK are built from the same launcher src
file with some different -D macro flags set to control which java class
gets invoked by that launcher. The source for the launchers is located here:
src/java.base/share/native/launcher/main.c
Does that answer your question?
/Erik
On 2018-07-20 15:31, mr rupplin wrote:
> In building the OpenJDK where may we find the source code file(s) for the javac output?
>
> In libjli we find the java.c but locate javac.c returns no results. How curious.
>
> Would you be a friend and help us out. We love reading.
>
> Thanks,
>
> Max
>
> /sr software developer
More information about the build-dev
mailing list