Description:
change compile to remove package from java change box command for run script
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r167:9db5952d7bb1 - - 2 files changed: 10 inserted, 3 deleted

@@ -105,17 +105,24
105
105
106 when "java"
106 when "java"
107 #rename the file to the public class name
107 #rename the file to the public class name
108
108
109 #get the class name
109 #get the class name
110 classname = 'DUMMY'
110 classname = 'DUMMY'
111 + source = Array.new
111 File.foreach(params[:source_file]) do |line|
112 File.foreach(params[:source_file]) do |line|
112 md = /\s*public\s*class\s*(\w*)/.match(line)
113 md = /\s*public\s*class\s*(\w*)/.match(line)
113 classname=md[1] if md
114 classname=md[1] if md
115 + source << line unless line =~ /\s*package\s*\w+\s*\;/
114 end
116 end
115 - system("cp #{params[:source_file]} #{classname}.java")
117 + File.open("#{classname}.java","w") do |file|
118 + source.each do |s|
119 + file.puts s
120 + end
121 + end
122 + #system("cp #{params[:source_file]} #{classname}.java")
116 command = "#{JAVA_COMPILER} #{classname}.java 2> #{params[:message_file]}"
123 command = "#{JAVA_COMPILER} #{classname}.java 2> #{params[:message_file]}"
117 system(command)
124 system(command)
118 if File.exists?(classname + ".class")
125 if File.exists?(classname + ".class")
119 File.open(params[:output_file],"w") {|file| file.write("#{classname}")}
126 File.open(params[:output_file],"w") {|file| file.write("#{classname}")}
120 end
127 end
121 if classname == 'DUMMY'
128 if classname == 'DUMMY'
@@ -88,14 +88,14
88
88
89 # Run the program.
89 # Run the program.
90 #run_command = "/usr/bin/time -f \"#{time_output_format}\" 2>run_result #{problem_home}/script/box_new -a 2 -f -t #{time_limit} -m #{mem_limit} -i #{input_file_name} -o output.txt #{program_name}"
90 #run_command = "/usr/bin/time -f \"#{time_output_format}\" 2>run_result #{problem_home}/script/box_new -a 2 -f -t #{time_limit} -m #{mem_limit} -i #{input_file_name} -o output.txt #{program_name}"
91 #
91 #
92
92
93 JAVA_OPTION = "-s set_robust_list -s futex -s clone -s getppid -s clone -s wait4 -p /usr/bin/ -p ./"
93 JAVA_OPTION = "-s set_robust_list -s futex -s clone -s getppid -s clone -s wait4 -p /usr/bin/ -p ./"
94 - RUBY_OPTION = "-p /usr/lib64/ -p /lib64/ -p /dev/urandom -p #{sandbox_dir}/#{program_name} -s set_robust_list -s sched_getaffinity -s clock_gettime -s sigaltstack -s pipe2 -s clone -s futex -s openat"
94 + RUBY_OPTION = "-p /usr/lib64/ -p /usr/local/lib/ -p /lib64/ -p /dev/urandom -p #{sandbox_dir}/#{program_name} -p #{sandbox_dir}/ -s set_robust_list -s sched_getaffinity -s clock_gettime -s sigaltstack -s pipe2 -s clone -s futex -s openat -s pipe"
95 - PYTHON_OPTION = "-p /usr/lib64/ -p /lib64/ -p /usr/bin/ -p /usr/local/lib64/ -p /usr/local/lib/ -p #{sandbox_dir}/#{program_name} -p ./#{program_name} -p #{sandbox_dir}/#{source_name} -s set_robust_list -s openat -s recvmsg -s connect -s socket -s sendto -E PYTHONNOUSERSITE=yes"
95 + PYTHON_OPTION = "-p /usr/lib64/ -p /lib64/ -p /usr/bin/ -p /usr/local/lib64/ -p /usr/local/lib/ -p #{sandbox_dir}/#{program_name} -p ./#{program_name} -p #{sandbox_dir}/#{source_name} -s set_robust_list -s openat -s recvmsg -s connect -s socket -s sendto -s futex -E PYTHONNOUSERSITE=yes"
96
96
97 case language
97 case language
98 when "java"
98 when "java"
99 # for java, extract the classname
99 # for java, extract the classname
100 # wne have to add additional systemcall and we don't check the mem limit (dunno how to fix...)
100 # wne have to add additional systemcall and we don't check the mem limit (dunno how to fix...)
101 classname = 'DUMMY'
101 classname = 'DUMMY'
You need to be logged in to leave comments. Login now