[x3d-public] X3DJSAIL running generated Java program to produce Java

Don Brutzman brutzman at nps.edu
Mon Jul 23 23:16:20 PDT 2018


On 7/20/2018 5:21 PM, John Carlson wrote:
> I guess the purpose of Java output from X3dToJava.xslt is so people can edit it to their desires.

yes or to have a java version for whatever reason.

> I have different intentions to get out XML and JSON for testing.   So I’ll have to edit your Java.

good debugging technique.  all general/repeatable improvements welcome, i will put them in X3dToJava.xslt stylesheet which converts .x3d => .java.

> I will use my JavaSerializer in the future.   Thanks!

very good

> John
> 
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
> 
> *From: *yottzumm at gmail.com <mailto:yottzumm at gmail.com>
> *Sent: *Friday, July 20, 2018 10:32 AM
> *To: *Don Brutzman <mailto:brutzman at nps.edu>
> *Cc: *X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
> *Subject: *Re: X3DJSAIL running generated Java program to produce Java
> 
> What’s important to realize is that I may only have a .class file, and I want to recover xml or JSON encoding. With your way of handling parameters, I have no way of doing that, afaict, without a decompiler.  Please correct me with an example invocation.
> 
> Sent from my iPhone
> 
>  > On Jul 20, 2018, at 6:32 AM, Don Brutzman <brutzman at nps.edu> wrote:
> 
>  >
> 
>  > Thanks for the report.
> 
>  >
> 
>  > First I think that your jar is likely out of date, the diagnostics are familiar from the past but do not match current configuration.
> 
>  >
> 
>  > http://www.web3d.org/specifications/java/X3DJSAIL.html#Downloads
> 
>  >
> 
>  > Second, the error is trying to tell you that the file "HelloWorldProgramOutput" is not found.
> 
>  >
> 
>  > I get the following:
> 
>  >
> 
>  > [Error]  [org.web3d.x3d.jsail.CommandLine] file not found: HelloWorldProgramOutput
> 
>  > Usage: java [-classpath X3DJSAIL.*.jar] org.web3d.x3d.jsail.CommandLine [sourceModel.x3d | package.path.ProgramName | -help | -page | -resources | -tooltips]
> 
>  >       [-tofile [resultFile.*]] [-properties [propertiesFile]] [-validate]
> 
>  >       [sourceModel.exi -fromEXI] [sourceModel.gz -fromGZIP] [sourceModel.zip -fromZIP]
> 
>  >       [-toX3D | -toXML | -toHTML | -toMarkdown | -toTidy | -toClassicVrml | -toJava | -toJSON | -toVRML97 | -toX3DOM | -toX_ITE | -toEXI | -toGZIP | -toZIP]
> 
>  >
> 
>  > Which likely makes sense for your system too, since the examples/ directory does not have any file "HelloWorldProgramOutput" except for those with a file extension added.
> 
>  >
> 
>  > Incidentally to facilitate such testing using IDE debug mode, I added a utility method CommandLine.run(String arguments) which will accept a single string and split it into args.  Example use is now in HelloWorld.java main method, adapted here:
> 
>  >
> 
>  >  // Quick test of CommandLine capability to facilitate debugging:
> 
>  >  org.web3d.x3d.jsail.CommandLine.run("HelloWorldProgramOutput  -tofile foo.java -toJava"); // allows simple testing
> 
>  >
> 
>  >> On 7/17/2018 6:51 PM, John Carlson wrote:
> 
>  >> Trying to produce Java source code from Java class, not working ,please advise:
> 
>  >> coderextreme at DESKTOP-DOPK2VD MINGW64 /c/x3d-code/www.web3d.org/x3d/stylesheets/java/classes
> 
>  >> $ java -cp ../jars/X3DJSAIL.3.3.full.jar";." HelloWorldProgramOutput -tofile foo.java -toJava
> 
>  >> parameter: "-tofile" "foo.java" for result file name root foo
> 
>  >> parameter: "-toJava" for conversion to Java source code
> 
>  >> [Error] Source model file name is empty, therefore file loading not possible.
> 
>  >> Java program "HelloWorldProgramOutput" self-validation test results: success
> 
>  >> coderextreme at DESKTOP-DOPK2VD MINGW64 /c/x3d-code/www.web3d.org/x3d/stylesheets/java/classes
> 
>  >> $ java -cp ../jars/X3DJSAIL.3.3.full.jar";." HelloWorldProgramOutput ../examples/HelloWorldProgramOutput.x3d -tofile foo.java -toJava
> 
>  >> WARNING: "HelloWorldProgramOutput" model invocation is attempting to load file "../examples/HelloWorldProgramOutput.x3d" instead of simply validating itself...
> 
>  >> No, CommandLine is not the correct answer.
> 
>  >
> 
>  > actually yes I think precise CommandLine invocation was the answer.  given that your invocation was different than mine, you might have also been getting Java treating "HelloWorldProgramOutput" as an executable referrence.  Whatever - recommend omitting "HelloWorldProgramOutput" above and getting switches correct.
> 
>  >
> 
>  >> Are we trying to provide a secure mechanism for people to write code so you can’t get the X3D XML or Java source code back out?    What about decompilers?
> 
>  > nope, no hidden protections.  CommandLine source shows that most of the code is simply trying to parse arguments correctly.
> 
>  >
> 
>  > all the best, Don
> 
>  > --
> 
>  > Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
> 
>  > Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> 
>  > X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
> 


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman




More information about the x3d-public mailing list