Skip to content

Commit e2f8d3d

Browse files
Update option separators
1 parent 21a9cb2 commit e2f8d3d

3 files changed

Lines changed: 10 additions & 13 deletions

File tree

src/main/java/pascal/taie/AbstractWorldBuilder.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.nio.file.Files;
3535
import java.nio.file.Path;
3636
import java.util.List;
37+
import java.util.stream.Collectors;
3738
import java.util.stream.Stream;
3839

3940
/**
@@ -59,7 +60,7 @@ public abstract class AbstractWorldBuilder implements WorldBuilder {
5960
"<java.security.PrivilegedActionException: void <init>(java.lang.Exception)>"
6061
);
6162

62-
protected static List<String> getClassPath(Options options) {
63+
protected static String getClassPath(Options options) {
6364
if (options.isPrependJVM()) {
6465
return options.getClassPath();
6566
} else { // when prependJVM is not set, we manually specify JRE jars
@@ -77,8 +78,8 @@ protected static List<String> getClassPath(Options options) {
7778
try (Stream<Path> paths = Files.walk(Path.of(jrePath))) {
7879
return Stream.concat(
7980
paths.map(Path::toString).filter(p -> p.endsWith(".jar")),
80-
options.getClassPath().stream())
81-
.toList();
81+
Stream.of(options.getClassPath()))
82+
.collect(Collectors.joining(File.pathSeparator));
8283
} catch (IOException e) {
8384
throw new RuntimeException("Analysis on Java " +
8485
options.getJavaVersion() + " library is not supported yet", e);

src/main/java/pascal/taie/config/Options.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,10 @@ public void printHelp() {
8282
// ---------- program options ----------
8383
@JsonProperty
8484
@Option(names = {"-cp", "--class-path"},
85-
description = "Class path, multiple paths can be split by ';'",
86-
split = ";")
87-
private List<String> classPath = List.of();
85+
description = "Class path. Multiple paths are split by system path separator.")
86+
private String classPath;
8887

89-
public List<String> getClassPath() {
88+
public String getClassPath() {
9089
return classPath;
9190
}
9291

@@ -101,8 +100,8 @@ public String getMainClass() {
101100
@JsonProperty
102101
@Option(names = {"--input-classes"},
103102
description = "The classes should be included in the World of analyzed program" +
104-
" (the classes can be split by ';')",
105-
split = ";")
103+
" (the classes can be split by ',')",
104+
split = ",")
106105
private List<String> inputClasses = List.of();
107106

108107
public List<String> getInputClasses() {

src/main/java/pascal/taie/frontend/soot/SootWorldBuilder.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,7 @@ public class SootWorldBuilder extends AbstractWorldBuilder {
7070
@Override
7171
public void build(Options options, List<AnalysisConfig> plan) {
7272
initSoot(options, plan, this);
73-
runSoot(new String[]{
74-
"-cp", String.join(File.pathSeparator, getClassPath(options)),
75-
options.getMainClass()
76-
});
73+
runSoot(new String[]{"-cp", getClassPath(options), options.getMainClass()});
7774
}
7875

7976
private static void initSoot(Options options, List<AnalysisConfig> plan,

0 commit comments

Comments
 (0)