pascal-lab/Tai-e

What is the support for Java source code? After testing, it was found that some classes did not recognize the method. What are the conditions for Java source code analysis?

Closed this issue · 1 comments

Clear and concise description of the problem

What is the support for Java source code? After testing, it was found that some classes did not recognize the method. What are the conditions for Java source code analysis?

Impact Analysis

No response

Suggested Solution

No response

Alternative

No response

Intention to submit PR

No

Additional Context

No response

What is the support for Java source code?

According to https://tai-e.pascal-lab.net/docs/current/reference/en/command-line-options.html#program-options:

Currently, Tai-e leverages Soot frontend to parse Java programs and help build Tai-e’s IR. Soot contains two frontends, one for parsing Java source files (.java) and the other one for bytecode files (.class). The former is outdated (only partially supports Java versions up to 7); while the latter, though quite robust (works properly for the .class files compiled by up to Java 17), cannot fully satisfy our requirements. Hence, we plan to develop our own frontend for Tai-e to address the above issues. For now, we advice using Tai-e to analyze bytecode, instead of source code, if possible.

What are the conditions for Java source code analysis?

Ensure you input .java files into Tai-e, but avoid .class files (when you want to analyze Java source code only). This is because Tai-e, when provided with both file types in the --class-path (and --app-class-path), prioritizes .class files.