Compare commits

..

1 Commits

Author SHA1 Message Date
Jered Ye 8b090fe832 备份 2024-01-13 20:32:14 +08:00
2158 changed files with 567960 additions and 36116 deletions

43
.gitignore vendored
View File

@ -1,43 +0,0 @@
client/build/built-jar.properties
client/nbproject/build-impl.xml
client/nbproject/genfiles.properties
client/nbproject/private/private.properties
client/nbproject/project.properties
client/problem.html
client/test/output/Main.cpp
clientUpdater/dist/clientUpdater.jar
clientUpdater/dist/lib/Common.jar
clientUpdater/dist/README.TXT
Common/dist/Common.jar
Judger/dist/Judger.jar
Judger/dist/lib/Common.jar
*.class
*.properties
*.html
*.cpp
*.jar
*.class
*.zip
*.jar
client/nbproject/private/private.properties
*.class
*.log
*.exe
*.class
*.jar
*.class
*.class
*.7z
/client/dist/
*.class
/client/build/classes
*.class
/client/build
/client/可运行客户端环境
/Judger/备份
/JuderUI/log
/JuderUI/build
/JuderUI/log
/client/build
/client/可运行客户端环境

8
.idea/.gitignore vendored
View File

@ -1,8 +0,0 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -1 +0,0 @@
Judger.jar

View File

@ -10,12 +10,9 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings">
<execution />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 6
}</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 6
}]]></component>
<component name="ProjectId" id="2aiWf7bW87V3mbwTY6CfqHLJiX4" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
@ -26,13 +23,11 @@
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "D:/dhu/3B/软件架构设计/实验/实验 4 设计模式/必考/Adapter",
"last_opened_file_path": "D:/OJ",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "vcs.Subversion",
"spring.configuration.checksum": "d41d8cd98f00b204e9800998ecf8427e",
"vue.rearranger.settings.migration": "true"
@ -58,14 +53,6 @@
</list>
</recent_temporary>
</component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-jdk-9823dce3aa75-28b599e66164-intellij.indexing.shared.core-IU-242.23339.11" />
<option value="bundled-js-predefined-d6986cc7102b-5c90d61e3bab-JavaScript-IU-242.23339.11" />
</set>
</attachedChunks>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration" cleanupOnStartRun="true">
<configuration>C:\Users\32592\AppData\Roaming\Subversion</configuration>
@ -79,9 +66,6 @@
<option name="presentableId" value="Default" />
<updated>1704801979303</updated>
<workItem from="1704801980316" duration="598000" />
<workItem from="1719379629921" duration="24000" />
<workItem from="1742820783863" duration="109000" />
<workItem from="1743039478282" duration="37000" />
</task>
<servers />
</component>

17
.vscode/launch.json vendored
View File

@ -1,17 +0,0 @@
{
// 使 IntelliSense
//
// 访: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "启动程序",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}\\client\\src\\web\\test.js"
}
]
}

Binary file not shown.

BIN
Common/dist/Common.jar vendored

Binary file not shown.

View File

@ -1,10 +0,0 @@
2024-04-30 21:19:22[INFO]Log message 0
2024-04-30 21:19:22[INFO]Log message 1
2024-04-30 21:19:22[INFO]Log message 2
2024-04-30 21:19:22[INFO]Log message 3
2024-04-30 21:19:22[INFO]Log message 4
2024-04-30 21:19:22[INFO]Log message 5
2024-04-30 21:19:22[INFO]Log message 6
2024-04-30 21:19:22[INFO]Log message 7
2024-04-30 21:19:22[INFO]Log message 8
2024-04-30 21:19:22[INFO]Log message 9

View File

@ -1,32 +0,0 @@
2024-04-30 21:09:04[INFO]Log message 0
2024-04-30 21:09:09[INFO]Log message 1
2024-04-30 21:09:14[INFO]Log message 2
2024-04-30 21:09:19[INFO]Log message 3
2024-04-30 21:09:24[INFO]Log message 4
2024-04-30 21:09:29[INFO]Log message 5
2024-04-30 21:09:34[INFO]Log message 6
2024-04-30 21:09:39[INFO]Log message 7
2024-04-30 21:09:44[INFO]Log message 8
2024-04-30 21:09:49[INFO]Log message 9
2024-04-30 21:11:19[INFO]Log message 0
2024-04-30 21:11:26[INFO]Log message 1
2024-04-30 21:11:38[INFO]Log message 0
2024-04-30 21:11:38[INFO]Log message 1
2024-04-30 21:11:38[INFO]Log message 2
2024-04-30 21:11:38[INFO]Log message 3
2024-04-30 21:11:38[INFO]Log message 4
2024-04-30 21:11:38[INFO]Log message 5
2024-04-30 21:11:38[INFO]Log message 6
2024-04-30 21:11:38[INFO]Log message 7
2024-04-30 21:11:38[INFO]Log message 8
2024-04-30 21:11:38[INFO]Log message 9
2024-04-30 21:13:00[INFO]Log message 0
2024-04-30 21:13:00[INFO]Log message 1
2024-04-30 21:13:00[INFO]Log message 2
2024-04-30 21:13:00[INFO]Log message 3
2024-04-30 21:13:00[INFO]Log message 4
2024-04-30 21:13:00[INFO]Log message 5
2024-04-30 21:13:00[INFO]Log message 6
2024-04-30 21:13:00[INFO]Log message 7
2024-04-30 21:13:00[INFO]Log message 8
2024-04-30 21:13:00[INFO]Log message 9

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
build.xml.data.CRC32=e5eafc6d
build.xml.script.CRC32=35a5ea50
build.xml.stylesheet.CRC32=f85dc8f2@1.113.0.48
build.xml.stylesheet.CRC32=8064a381@1.79.1.48
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=e5eafc6d
nbproject/build-impl.xml.script.CRC32=6e6b0703
nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.113.0.48
nbproject/build-impl.xml.script.CRC32=f31ce408
nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48

View File

@ -1,9 +1,7 @@
compile.on.save=true
do.depend=false
do.jar=true
<<<<<<< HEAD
=======
>>>>>>> 9424929ba4fe9afe21ab70bff638a1960335fa7f
file.reference.registry.jar=K:\\OJ\\Lib\\registry.jar
javac.debug=true
javadoc.preview=true
user.properties.file=C:\\Users\\tange\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties

View File

@ -3,6 +3,8 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group name="最新版本代码"/>
<group/>
<group>
<file>file:/K:/OJ/Common/src/common/FileFinder.java</file>
</group>
</open-files>
</project-private>

View File

@ -19,12 +19,8 @@ build.test.results.dir=${build.dir}/test/results
#debug.transport=dt_socket
debug.classpath=\
${run.classpath}
debug.modulepath=\
${run.modulepath}
debug.test.classpath=\
${run.test.classpath}
debug.test.modulepath=\
${run.test.modulepath}
# build.classes.dir \u4e2d\u5e94\u4ece\u5206\u53d1 jar \u4e2d\u6392\u9664\u7684\u6587\u4ef6
dist.archive.excludes=
# This directory is removed when the project is cleaned:
@ -43,7 +39,7 @@ file.reference.jdom-2.0.5.jar=../AcmLib/jdom-2.0.5.jar
file.reference.jdom.jar=../AcmLib/jdom.jar
file.reference.jta.jar=../AcmLib/jta.jar
file.reference.mysql-connector-java-5.1.6-bin.jar=../AcmLib/mysql-connector-java-5.1.6-bin.jar
file.reference.registry.jar=../Lib/registry.jar
file.reference.registry.jar=F:\\registry-3.1.3\\bin\\registry.jar
includes=**
jar.compress=false
javac.classpath=\
@ -62,8 +58,6 @@ javac.classpath=\
javac.compilerargs=
javac.deprecation=false
javac.external.vm=false
javac.modulepath=
javac.processormodulepath=
javac.processorpath=\
${javac.classpath}
javac.source=1.8
@ -71,8 +65,6 @@ javac.target=1.8
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}
javac.test.modulepath=\
${javac.modulepath}
javac.test.processorpath=\
${javac.test.classpath}
javadoc.additionalparam=
@ -86,7 +78,7 @@ javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
main.class=common.LangSelector
main.class=common.DBConfig
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=true
platform.active=default_platform
@ -97,13 +89,9 @@ run.classpath=\
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
# To set system properties for unit tests define test-sys-prop.name=value:
run.jvmargs=
run.modulepath=\
${javac.modulepath}
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
run.test.modulepath=\
${javac.test.modulepath}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View File

@ -13,7 +13,7 @@ import java.util.List;
import java.util.Map.Entry;
import java.util.Properties;
import log.Log;
import java.nio.file.Paths;
public class Config {
public static int DEBUG;
@ -100,12 +100,7 @@ public class Config {
//临时代码输出路径 若要改回配置文件读取 从const里获取字段
public static String getSourcePath() {
String curDir = Paths.get(".").toAbsolutePath().normalize().toString();
return curDir+"/test";
}
public static String getLogPath(){
String curDir = Paths.get(".").toAbsolutePath().normalize().toString();
return curDir+"/log";
return "./test"; //
}
//临时代码输出路径
@ -113,62 +108,30 @@ public class Config {
// if (isTestRelative) {
// return System.getProperty("user.dir") + prop.getProperty("relativeExeDir");
// } else {
String curDir = Paths.get(".").toAbsolutePath().normalize().toString();
return curDir+"/test";
return "./test";
//}
}
public static String getCompilerDir(String language,String compiler) {
public static String getCompilerDir(String language) {
String dir = null;
//todo
dir=LangSelector.getCompilerPath(language,compiler);
//if (language.equals("c") || language.equals("cpp") || language.equals("c++")) {
// dir=LangSelector.getCompilerPath("C++", compiler);
//dir = prop.getProperty(Const.MinGWDir);
//} else if (language.equals("java")) {
// dir=LangSelector.getCompilerPath("Java", compiler);
//dir = prop.getProperty(Const.JavaCompilerDir);
//}
if (language.equals("c") || language.equals("cpp") || language.equals("c++")) {
dir = prop.getProperty(Const.MinGWDir);
} else if (language.equals("java")) {
dir = prop.getProperty(Const.JavaCompilerDir);
}
return dir;
}
//public static String getCompilerDir(String language) {
// String dir = null;
//todo
// if (language.equals("c") || language.equals("cpp") || language.equals("c++")) {
// dir=LangSelector.getCompilerPath("C++", null);
// //dir = prop.getProperty(Const.MinGWDir);
// } else if (language.equals("java")) {
// dir=LangSelector.getCompilerPath("Java", null);
// //dir = prop.getProperty(Const.JavaCompilerDir);
// }
// return dir;
// }
public static String CompilerDir(String language,String compiler) {
public static String CompilerDir(String language) {
String dir = null;
if (language.equals("c") || language.equals("cpp") || language.equals("c++")) //返回各种语言的编译器地址
{
//dir = System.getProperty("user.dir") + Const.MinGWDir;
dir=LangSelector.getCompilerPath("C++",compiler);
dir = System.getProperty("user.dir") + Const.MinGWDir;
} else if (language.equals("java")) {
//dir = System.getProperty("user.dir") + Const.JavaCompilerDir;
dir=LangSelector.getCompilerPath("Java",compiler);
dir = System.getProperty("user.dir") + Const.JavaCompilerDir;
}
return dir;
}
// public static String CompilerDir(String language) {
// String dir = null;
//
// if (language.equals("c") || language.equals("cpp") || language.equals("c++")) //返回各种语言的编译器地址
// {
// //dir = System.getProperty("user.dir") + Const.MinGWDir;
// dir = LangSelector.getCompilerPath("C++", compiler);
// } else if (language.equals("java")) {
// //dir = System.getProperty("user.dir") + Const.JavaCompilerDir;
// dir = LangSelector.getCompilerPath("Java", null);
// }
// return dir;
// }
}

View File

@ -37,8 +37,6 @@ public class Const {
return ".cpp";
} else if (language.equals("java")) {
return ".java";
}else if(language.equals("python")){
return ".py";
}
return null;
}

View File

@ -70,12 +70,12 @@ private final static String FileName="DBConfig.properties";
public static void setPassword(String Password) {
dbConfig.setProperty("hibernate.connection.password", Password);
}
//
// public static void main(String[] args) {
// System.out.println(DBConfig.getUserName());
// System.out.println(DBConfig.getPassword());
// System.out.println(DBConfig.getIp());
// }
public static void main(String[] args) {
System.out.println(DBConfig.getUserName());
System.out.println(DBConfig.getPassword());
System.out.println(DBConfig.getIp());
}
public static void writeToFile(){
try {

View File

@ -1,34 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package common;
/**
*
* @author tange
*/
public class EscapeXml {
// 手动转义特殊字符为 XML 实体
public static String escapeXml(String input) {
if(input.length()>1000)
input=input.substring(0,1000);
StringBuilder builder = new StringBuilder();
for (char c : input.toCharArray()) {
switch (c) {
case '<':
builder.append("&lt;");
break;
case '>':
builder.append("&gt;");
break;
default:
builder.append(c);
break;
}
}
return builder.toString();
}
}

View File

@ -1,143 +1,35 @@
package common;
import java.io.File;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
*
* @author Jared Ye
*/
public abstract class LangSelector {
private static String ConfigPath="";
private static Document Data;
public static boolean Loaded=false;
private static String lastLanguage; // 最后使用的语言
private static XPath xpath = XPathFactory.newInstance().newXPath();
static {
try {
customDefaultCompiler=new HashMap<>();
init();
ConfigPath=findConfigFilePath();
Data = init(ConfigPath);
Loaded=true;
} catch (Exception e) {
//初始化的时候没有读到config.xml
}
}
//
private static Map<String,String>customDefaultCompiler;
// by san_san
public static String getDefaultCompiler(String language) {
try {
String xpathExpr = String.format("/languages/language[@id='%s']/lastCompiler", language);
Node lastCompilerNode = (Node) xpath.evaluate(xpathExpr, Data, XPathConstants.NODE);
if (lastCompilerNode != null) {
return lastCompilerNode.getTextContent();
}
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return customDefaultCompiler.get(language);
}
public static void setDefaultCompiler(String language,String compiler) {
customDefaultCompiler.put(language, compiler);
try {
// 更新 XML 中的 lastCompiler 节点
String xpathExpr = String.format("/languages/language[@id='%s']", language);
Node languageNode = (Node) xpath.evaluate(xpathExpr, Data, XPathConstants.NODE);
if (languageNode != null) {
Element languageElement = (Element) languageNode;
Node lastCompilerNode = (Node) xpath.evaluate("lastCompiler", languageElement, XPathConstants.NODE);
if (lastCompilerNode == null) {
// 如果 lastCompiler 节点不存在创建它
lastCompilerNode = Data.createElement("lastCompiler");
languageElement.appendChild(lastCompilerNode);
}
lastCompilerNode.setTextContent(compiler);
}
} catch (XPathExpressionException e) {
e.printStackTrace();
}
}
//
// by san_san
// 获取最后使用的语言
public static String getLastLanguage() {
try {
String xpathExpr = "/languages/lastLanguage";
Node lastLanguageNode = (Node) xpath.evaluate(xpathExpr, Data, XPathConstants.NODE);
if (lastLanguageNode != null) {
return lastLanguageNode.getTextContent();
}
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return null;
}
// 设置最后使用的语言
public static void setLastLanguage(String language) {
try {
// 标准化语言名称
String standardLanguage = parseStandardLanguageName(language);
// 查找现有的 lastLanguage 节点
String xpathExpr = "/languages/lastLanguage";
Node lastLanguageNode = (Node) xpath.evaluate(xpathExpr, Data, XPathConstants.NODE);
if (lastLanguageNode != null) {
// 如果节点存在更新内容
lastLanguageNode.setTextContent(standardLanguage);
} else {
// 如果节点不存在创建新节点
Element root = Data.getDocumentElement();
Element newLastLanguage = Data.createElement("lastLanguage");
newLastLanguage.setTextContent(standardLanguage);
root.appendChild(newLastLanguage);
}
// 更新内存中的值
lastLanguage = standardLanguage;
// 保存到文件
save(ConfigPath);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String findConfigFilePath() {
String currentPath = System.getProperty("user.dir");
String configFile = "config.xml";
@ -171,163 +63,8 @@ public abstract class LangSelector {
public static String getConfigPath(){
return ConfigPath;
}
/////////////////////////////////新增的逻辑
public static void save(String filePath) throws Exception {
Document doc = Data;
// 创建TransformerFactory实例
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
// 将Document转换为DOMSource
DOMSource source = new DOMSource(doc);
// 创建StreamResult以保存到文件
StreamResult result = new StreamResult(new File(filePath));
// 执行转换并写入文件
transformer.transform(source, result);
System.out.println("XML 文件保存成功: " + filePath);
}
public static boolean setCompilerPath(String languageName, String compilerName, String newPath) {
languageName = parseStandardLanguageName(languageName);
if (compilerName == null || compilerName.trim().equals("")) {
compilerName = getDefaultCompilerName(languageName);
}
try {
// 定义XPath表达式来找到对应的编译器path节点
String exp = "/languages/language" + "[@id='" + languageName + "']" + "//compiler[@name='" + compilerName + "']//path";
// 使用XPath查找对应节点
Node pathNode = (Node) xpath.evaluate(exp, Data, XPathConstants.NODE);
// 检查path节点是否存在
if (pathNode != null) {
// 设置新路径
pathNode.setTextContent(newPath);
return true; // 返回true表示设置成功
} else {
System.out.println("找不到指定的编译器路径节点");
return false;
}
} catch (XPathExpressionException e) {
System.out.println(e.getMessage());
return false;
}
}
public static void setCompileCommand(String languageName, String compilerName, String compileCommand) {
Document doc=Data;
languageName = parseStandardLanguageName(languageName);
if (compilerName == null || compilerName.trim().equals("")) {
compilerName = getDefaultCompilerName(languageName);
}
try {
String exp = "/languages/language[@id='" + languageName + "']//compiler[@name='" + compilerName + "']//compileCmd";
// 获取节点
Node compileCmdNode = (Node) xpath.evaluate(exp, Data, XPathConstants.NODE);
if (compileCmdNode != null) {
compileCmdNode.setTextContent(compileCommand);
} else {
// 创建新节点逻辑
// 这里的实现取决于你的 XML 结构假设我们有 Document 对象 doc
Element newCompilerElement = doc.createElement("compiler");
newCompilerElement.setAttribute("name", compilerName);
Element newCompileCmdElement = doc.createElement("compileCmd");
newCompileCmdElement.setTextContent(compileCommand);
newCompilerElement.appendChild(newCompileCmdElement);
// 假设你有一个表示语言的节点
Node languageNode = (Node) xpath.evaluate("/languages/language[@id='" + languageName + "']", Data, XPathConstants.NODE);
if (languageNode != null) {
languageNode.appendChild(newCompilerElement);
}
}
} catch (XPathExpressionException e) {
System.out.println(e.getMessage());
}
}
//////////////////////
public static void setLinkCommand(String languageName, String compilerName, String linkCommand) {
Document doc = Data;
languageName = parseStandardLanguageName(languageName);
if (compilerName == null || compilerName.trim().equals("")) {
compilerName = getDefaultCompilerName(languageName);
}
try {
String exp = "/languages/language[@id='" + languageName + "']//compiler[@name='" + compilerName + "']//linkCmd";
// 获取节点
Node compileCmdNode = (Node) xpath.evaluate(exp, Data, XPathConstants.NODE);
if (compileCmdNode != null) {
compileCmdNode.setTextContent(linkCommand);
} else {
// 创建新节点逻辑
// 这里的实现取决于你的 XML 结构假设我们有 Document 对象 doc
Element newCompilerElement = doc.createElement("compiler");
newCompilerElement.setAttribute("name", compilerName);
Element newCompileCmdElement = doc.createElement("linkCmd");
newCompileCmdElement.setTextContent(linkCommand);
newCompilerElement.appendChild(newCompileCmdElement);
// 假设你有一个表示语言的节点
Node languageNode = (Node) xpath.evaluate("/languages/language[@id='" + languageName + "']", Data, XPathConstants.NODE);
if (languageNode != null) {
languageNode.appendChild(newCompilerElement);
}
}
} catch (XPathExpressionException e) {
System.out.println(e.getMessage());
}
}
public static String parseStandardLanguageName(String languageName) {
try {
// 创建 XPath 对象
XPath xpath = XPathFactory.newInstance().newXPath();
// 编译 XPath 表达式
XPathExpression expr = xpath.compile("//language");
// 评估 XPath 表达式
Object result = expr.evaluate(Data, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
// 遍历每个语言节点
for (int i = 0; i < nodes.getLength(); i++) {
String id = nodes.item(i).getAttributes().getNamedItem("id").getNodeValue();
String aliasString = nodes.item(i).getAttributes().getNamedItem("alias").getNodeValue();
String[] aliases = aliasString.split(",");
// 检查 languageName 是否与 ID 匹配
if (id.equalsIgnoreCase(languageName)) {
return id;
}
// 检查 languageName 是否与别名匹配
for (String alias : aliases) {
if (alias.equalsIgnoreCase(languageName)) {
return id;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
// 如果没有匹配项则返回原始 languageName
return languageName;
}
public static String getDefaultCompilerName(String languageName){
languageName=parseStandardLanguageName(languageName);
if(customDefaultCompiler.containsKey(languageName))
{
return customDefaultCompiler.get(languageName);
}
//if(languageName.charAt(0)>='a')languageName
try{
String exp="/languages/language"+ "[@id='" +languageName+ "']"+"/compiler[1]/@name";
@ -341,98 +78,30 @@ public abstract class LangSelector {
public static Document init() throws Exception {
public static Document init(String ConfigPath) throws Exception {
// 创建Document对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
// 创建XPath对象
LangSelector.ConfigPath =findConfigFilePath();
LangSelector.ConfigPath =ConfigPath;
//JOptionPane.showMessageDialog(null,"当前工作目录:"+ConfigPath);
// LangSelector.ConfigPath=new File(LangSelector.ConfigPath).getAbsolutePath();
Document doc=db.parse(new File(LangSelector.ConfigPath));
Data=doc;
// 加载默认编译器设置 by san_san
NodeList languageNodes = (NodeList) xpath.evaluate("/languages/language", doc, XPathConstants.NODESET);
for (int i = 0; i < languageNodes.getLength(); i++) {
Element languageElement = (Element) languageNodes.item(i);
String languageId = languageElement.getAttribute("id");
Node lastCompilerNode = (Node) xpath.evaluate("lastCompiler", languageElement, XPathConstants.NODE);
if (lastCompilerNode != null) {
customDefaultCompiler.put(languageId, lastCompilerNode.getTextContent());
} else {
// 如果 lastCompiler 不存在使用第一个编译器作为默认
NodeList compilerNodes = languageElement.getElementsByTagName("compiler");
if (compilerNodes.getLength() > 0) {
Element defaultCompiler = (Element) compilerNodes.item(0);
customDefaultCompiler.put(languageId, defaultCompiler.getAttribute("name"));
}
}
}
// 初始化 lastLanguage
Node lastLanguageNode = (Node) xpath.evaluate("/languages/lastLanguage", doc, XPathConstants.NODE);
if (lastLanguageNode != null) {
lastLanguage = lastLanguageNode.getTextContent();
} else {
// 如果不存在创建节点并设置默认值为第一个可用的语言
languageNodes = (NodeList) xpath.evaluate("/languages/language", doc, XPathConstants.NODESET);
if (languageNodes.getLength() > 0) {
Element firstLanguage = (Element) languageNodes.item(0);
lastLanguage = firstLanguage.getAttribute("id");
Element root = doc.getDocumentElement();
Element lastLanguageElement = doc.createElement("lastLanguage");
lastLanguageElement.setTextContent(lastLanguage);
root.appendChild(lastLanguageElement);
}
}
return doc;
return db.parse(LangSelector.ConfigPath);
}
// 获取语言ID的辅助方法
public static String getLanguageIdFromAlias(String alias) {
return parseStandardLanguageName(alias);
}
public static List<String> getCompilerNames(String languageName){
languageName=parseStandardLanguageName(languageName);
ArrayList<String>arrayListStr=new ArrayList<>();
try {
String exp="/languages/language"+ "[@id='" +languageName+ "']"+"//compiler";
NodeList nodeList = (NodeList) xpath.evaluate(exp,Data,XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
Node childNode = nodeList.item(i);
arrayListStr.add(childNode.getAttributes().getNamedItem("name").getTextContent());
// 如果需要获取属性值可以使用 childNode.getAttributes().getNamedItem("attributeName").getTextContent()
}
return arrayListStr;
} catch (XPathExpressionException ex) {
Logger.getLogger(LangSelector.class.getName()).log(Level.SEVERE, null, ex);
return arrayListStr;
}
}
public static String getCompilerPath(String languageName,String compilerName) {
languageName=parseStandardLanguageName(languageName);
if(compilerName==null||compilerName.equals(""))compilerName=getDefaultCompilerName(languageName);
if(compilerName==null)compilerName=getDefaultCompilerName(languageName);
try{
String exp="/languages/language"+ "[@id='" +languageName+ "']"+"//compiler[@name='"+compilerName+"']//path/text()";
return (String) xpath.evaluate(exp,Data);
} catch (XPathExpressionException e) {
System.out.println("null!");
System.out.println(e.getMessage());
return null;
}
}
public static String getCompileCommand(String languageName,String compilerName){
languageName=parseStandardLanguageName(languageName);
if(compilerName==null)compilerName=getDefaultCompilerName(languageName);
try{
String exp="/languages/language"+ "[@id='" +languageName+ "']"+"//compiler[@name='"+compilerName+"']//compileCmd/text()";
@ -443,8 +112,7 @@ public abstract class LangSelector {
}
}
public static String getLinkCommand(String languageName,String compilerName){
languageName=parseStandardLanguageName(languageName);
if(compilerName==null||compilerName.equals(""))compilerName=getDefaultCompilerName(languageName);
if(compilerName==null)compilerName=getDefaultCompilerName(languageName);
try{
String exp="/languages/language"+ "[@id='" +languageName+ "']"+"//compiler[@name='"+compilerName+"']//linkCmd/text()";
return (String) xpath.evaluate(exp,Data);
@ -454,8 +122,7 @@ public abstract class LangSelector {
}
}
public static String getRunCommand(String languageName,String compilerName){
languageName=parseStandardLanguageName(languageName);
if(compilerName==null||compilerName.equals(""))compilerName=getDefaultCompilerName(languageName);
if(compilerName==null)compilerName=getDefaultCompilerName(languageName);
try{
String exp="/languages/language"+ "[@id='" +languageName+ "']"+"//compiler[@name='"+compilerName+"']//runCmd/text()";
return (String) xpath.evaluate(exp,Data);
@ -479,12 +146,12 @@ public abstract class LangSelector {
}
}
public static String matchPlaceHolder(String src, HashMap<String,String>map){
if(src==null||src.trim().isEmpty())return null;
for (java.util.Map.Entry<String, String> Entry : map.entrySet()) {
src = src.replace(Entry.getKey(), Entry.getValue());
//System.out.println(Entry.getKey() + "已替换:" + Entry.getValue());
System.out.println(Entry.getKey() + "已替换:" + Entry.getValue());
}
return src;
}
}

View File

@ -1,20 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package common;
public enum LogLevel{
INFO("INFO"),
WARNING("WARNING"),
ERROR("ERROR");
private final String info;
private LogLevel(String info){
this.info=info;
}
public String getString(){
return info;
}
}

View File

@ -1,89 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package common;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Logger {
private static Logger instance;
private PrintWriter writer;
private String logFileName;
private static final String LOG_FILE_PREFIX = "log";
private static final String LOG_FILE_SUFFIX = ".txt";
private static final long HOUR_IN_MILLISECONDS = 3600000L; // 1 hour in milliseconds
private static String Logdir = Config.getLogPath();
private Logger() {
createLogFile();
startFileUpdateThread();
}
public static synchronized Logger getInstance() {
if (instance == null) {
instance = new Logger();
}
return instance;
}
private void createLogFile() {
LocalDateTime now = LocalDateTime.now();
logFileName = Logdir+File.separator+LOG_FILE_PREFIX + "_" + now.format(DateTimeFormatter.ofPattern("yyyyMMddHH")) + LOG_FILE_SUFFIX;
System.out.println("日志文件"+logFileName+"已创建!");
try {
writer = new PrintWriter(new FileWriter(logFileName, true));
} catch (IOException e) {
e.printStackTrace();
}
}
private void startFileUpdateThread() {
Thread fileUpdateThread = new Thread(() -> {
while (true) {
try {
Thread.sleep(HOUR_IN_MILLISECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
updateLogFile();
}
});
fileUpdateThread.setDaemon(true);
fileUpdateThread.start();
}
private void updateLogFile() {
writer.close(); // Close the current log file
createLogFile(); // Create a new log file
}
public void log(String msg, LogLevel level) {
String txt = getTimeStamp() + "[" + level.getString() + "]" + msg;
System.out.println(txt);
writer.println(txt);
writer.flush();
}
private String getTimeStamp() {
LocalDateTime now = LocalDateTime.now();
return now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
public static void main(String[] args) {
Logger logger = Logger.getInstance();
for (int i = 0; i < 10; i++) {
logger.log("Log message " + i, LogLevel.INFO);
try {
Thread.sleep(50); // Sleep for 5 seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

View File

@ -1,130 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package common;
/**
*
* @author tange
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class VSWhereUtil {
/**
* 从指定的起始目录开始逐层向上查找 vswhere.exe
*
* @param startDir 起始目录
* @return vswhere.exe 的绝对路径
* @throws RuntimeException 如果未找到 vswhere.exe
*/
private static String findVswhereExe(File startDir) {
File currentDir = startDir;
while (currentDir != null) {
File vswhereFile = new File(currentDir, "vswhere.exe");
if (vswhereFile.exists() && vswhereFile.isFile()) {
return vswhereFile.getAbsolutePath();
}
currentDir = currentDir.getParentFile(); // 向上一级目录
}
throw new RuntimeException("未找到 vswhere.exe请确保该文件存在于程序目录或上层目录中。");
}
private static String getVcvarsPath() throws IOException, InterruptedException {
String vswhereDir=findVswhereExe(new File(System.getProperty("user.dir")));
ProcessBuilder processBuilder = new ProcessBuilder(vswhereDir,
"-latest",
"-products", "*",
"installationPath",
"-find", "**/vcvars64.bat");
processBuilder.redirectErrorStream(true); // 合并标准错误输出
Process process = processBuilder.start();
List<String> output = new ArrayList<>();
try (Scanner scanner = new Scanner(process.getInputStream())) {
while (scanner.hasNextLine()) {
output.add(scanner.nextLine());
}
}
process.waitFor();
if (!output.isEmpty()) {
return output.get(0);
}
return null;
}
public static String findClExePath() {
// 获取当前工作目录
File currentDir = new File(System.getProperty("user.dir"));
// 查找 vswhere.exe 路径
String vswherePath = findVswhereExe(currentDir);
String clExeDir = null;
try {
// 构建命令行调用 vswhere.exe
ProcessBuilder processBuilder = new ProcessBuilder(vswherePath,
"-latest",
"-products", "*",
"-requires", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"-find", "**/Hostx64/x64/cl.exe");
// 设置工作目录为当前程序目录
processBuilder.directory(new File(System.getProperty("user.dir")));
// 启动进程
Process process = processBuilder.start();
// 读取命令行输出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
if (line.endsWith("cl.exe")) {
clExeDir = line.substring(0, line.lastIndexOf("cl.exe"));
break;
}
}
reader.close();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
return clExeDir;
}
public static String getMsvcCompilerCommand(){
try {
return "cmd.exe /c call \""+getVcvarsPath()+"\" && \"$compilerPath$/cl.exe\" \"$sourceFile$\" /O2 /Fe:\"$exeFile$\"";
} catch (IOException ex) {
Logger.getLogger(VSWhereUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(VSWhereUtil.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
public static String getMsvcLinkCommand(){
return "cmd.exe /c";
}
public static void main(String[] args) {
String clPath = findClExePath();
if (clPath != null) {
System.out.println("cl.exe 目录路径: " + clPath);
System.out.println(getMsvcCompilerCommand());
} else {
System.out.println("未找到 cl.exe 路径");
}
}
}

View File

@ -18,9 +18,6 @@ public class SolutionBean {
Integer userId;
Date submitTime;
String language;
//NEW
String compiler;
//
String SourceCode;
Integer codelength;
String status;
@ -30,7 +27,6 @@ public class SolutionBean {
Float score;
String remark;
public SolutionBean() {
this.id = 1;
this.examId = 1;
@ -38,7 +34,6 @@ public class SolutionBean {
this.userId = 1;
this.submitTime = new Date();
this.language = "";
this.compiler="";
this.SourceCode = "";
this.codelength = 3;
this.status = "";
@ -49,13 +44,6 @@ public class SolutionBean {
this.remark = "";
}
public void setCompiler(String compiler){
this.compiler=compiler;
}
public String getCompiler(){
return compiler;
}
public Integer getId() {
return id;
}

Binary file not shown.

View File

@ -1,82 +0,0 @@
package edu.dhu.ws;
public interface OJWS {
//测试
public String test(String message);
// 将登陆人的信息转换成xml格式
public String wsLogin(String userName, String userPassword);
// 将考试列表转换成xml格式
public String wsGetExamList(String userName, String password);
// 通过Id将考试列表转换成xml格式
public String wsGetExamById(String userName, String password, int examId);
// 根据problemId查出problems和problemtestcases的相关信息转换成xml格式
public byte[] wsGetProblem(String userName, String password,int examId, int problemId);
// 根据examId查出examProblems的相关信息转换成xml格式
public String wsGetExamProblems(String userName, String password,
int examId, int page, int rows);
// 根据用户名密码examId获取examdetail的相关信息转换成xml格式
public String wsGetExamDetail(String userName, String password, int examId, int page, int rows);
// 根据用户提交的代码对WrongCases,Solution,Problems,StudentExamDetail的相关信息,返回solutionId
public String wsSubmitCode(String userName, String password, String codeXml);
// 提交本题操作
public String wsSubmitThisProblem(String userName, String password,
String codeXml);
// 获取submittedcode的信息用来检查相似度
public String wsSubmittedCode(String userName, String password,
int problemId);
// 查看测试数据,获取wrongcases的信息
public String wsViewWrongCase(String userName, String password,
int examId, int problemId, int caseId, boolean caseInfo);
// 获取最新状态
public String wsGetExamProblemStatus(String userName, String password,
int examId, int problemId);
// 裁判机获取solution等信息
public String wsGetSolutions(String account,String password,int number);
// 更新裁判后返回的结果
public String wsUpdateResult(String userName, String password,byte[] result);
// 是否允许换座
public String wsIsPermit(String userName, String password, int examId,
String UUID);
// 裁判机获取题目信息
public byte[] wsGetProblem4Judge(String userName, String password, int problemId);
// 根据examId获取智能训练题目类别
public String wsGetExamProCatagorys(String userName,String password,int examId);
//智能训练页面点击"开始做题"操作
public String wsCanDoCategory(String userName, String password, int examId);
//智能训练页面点击"我要抽题"操作
public byte[] wsDrawProblem(String userName, String password, int examId,int catId);
//智能训练模块做题记录页面数据
public String wsSubmitHistory(String userName, String password, int examId);
//智能训练模块"提交代码"操作
public String wsItrainSubmitCode(String userName, String password,int catId,String codeXml);
//智能训练模块"暂时跳过本题"操作
public String wsSkipThisProblem(String userName, String password, int examId,int catId,int problemId);
//智能训练模块"提交本题"操作
public String wsItrainSubmitThisProblem(String userName, String password,int catId,String codeXml,String continueTrain);
//智能训练模块"我要通关"操作
public String wsPassThisCategory(String userName, String password, int examId,int catId);
}

View File

@ -1,8 +1,8 @@
#Thu, 18 Sep 2025 20:27:28 +0800
#Sat, 13 Jan 2024 20:31:31 +0800
D\:\\oj\\JuderUI=
K\:\\OJ\\JuderUI=
D\:\\oj\\Common=
K\:\\OJ\\Common=
D\:\\oj\\Judger=
K\:\\OJ\\Judger=

View File

@ -3,6 +3,4 @@
<system systemId="http://47.95.22.126:8080/oj/webservice/OJWS?wsdl" uri="wsdl/47.95.22.126_8080/oj/webservice/OJWS.wsdl"/>
<system systemId="http://127.0.0.1:8080/oj/webservice/OJWS?wsdl" uri="wsdl/127.0.0.1_8080/oj/webservice/OJWS.wsdl"/>
<system systemId="http://106.15.36.190:80/oj/webservice/OJWS?wsdl" uri="wsdl/106.15.36.190_80/oj/webservice/OJWS.wsdl"/>
<system systemId="https://219.228.76.122:443/oj/webservice/OJWS?wsdl" uri="wsdl/219.228.76.122_443/oj/webservice/OJWS.wsdl"/>
<system systemId="https://219.228.76.122:8080/oj/webservice/OJWS?wsdl" uri="wsdl/219.228.76.122_8080/oj/webservice/OJWS.wsdl"/>
</catalog>

View File

@ -872,7 +872,7 @@
</wsdl:binding>
<wsdl:service name="OJWS">
<wsdl:port binding="tns:OJWSSoapBinding" name="OJWSImplPort">
<soap:address location="https://219.228.76.122:8080/oj/webservice/OJWS" />
<soap:address location="http://106.15.36.190/oj/webservice/OJWS" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -17,7 +17,7 @@ import javax.xml.ws.WebServiceFeature;
* Generated source version: 2.2
*
*/
@WebServiceClient(name = "OJWS", targetNamespace = "http://ws.dhu.edu/", wsdlLocation = "https://219.228.76.122:443/oj/webservice/OJWS?wsdl")
@WebServiceClient(name = "OJWS", targetNamespace = "http://ws.dhu.edu/", wsdlLocation = "http://106.15.36.190:80/oj/webservice/OJWS?wsdl")
public class OJWS_Service
extends Service
{
@ -30,7 +30,7 @@ public class OJWS_Service
URL url = null;
WebServiceException e = null;
try {
url = new URL("https://219.228.76.122:443/oj/webservice/OJWS?wsdl");
url = new URL("http://106.15.36.190:80/oj/webservice/OJWS?wsdl");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}

View File

@ -17,7 +17,7 @@ import javax.xml.ws.WebServiceFeature;
* Generated source version: 2.2
*
*/
@WebServiceClient(name = "OJWS", targetNamespace = "http://ws.dhu.edu/", wsdlLocation = "https://219.228.76.122:443/oj/webservice/OJWS?wsdl")
@WebServiceClient(name = "OJWS", targetNamespace = "http://ws.dhu.edu/", wsdlLocation = "http://106.15.36.190:80/oj/webservice/OJWS?wsdl")
public class OJWS_Service
extends Service
{
@ -30,7 +30,7 @@ public class OJWS_Service
URL url = null;
WebServiceException e = null;
try {
url = new URL("https://219.228.76.122:443/oj/webservice/OJWS?wsdl");
url = new URL("http://106.15.36.190:80/oj/webservice/OJWS?wsdl");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}

View File

@ -3,6 +3,4 @@
<system systemId="http://47.95.22.126:8080/oj/webservice/OJWS?wsdl" uri="xml-resources/web-service-references/OJWS/wsdl/47.95.22.126_8080/oj/webservice/OJWS.wsdl"/>
<system systemId="http://127.0.0.1:8080/oj/webservice/OJWS?wsdl" uri="xml-resources/web-service-references/OJWS/wsdl/127.0.0.1_8080/oj/webservice/OJWS.wsdl"/>
<system systemId="http://106.15.36.190:80/oj/webservice/OJWS?wsdl" uri="xml-resources/web-service-references/OJWS/wsdl/106.15.36.190_80/oj/webservice/OJWS.wsdl"/>
<system systemId="https://219.228.76.122:443/oj/webservice/OJWS?wsdl" uri="xml-resources/web-service-references/OJWS/wsdl/219.228.76.122_443/oj/webservice/OJWS.wsdl"/>
<system systemId="https://219.228.76.122:8080/oj/webservice/OJWS?wsdl" uri="xml-resources/web-service-references/OJWS/wsdl/219.228.76.122_8080/oj/webservice/OJWS.wsdl"/>
</catalog>

View File

@ -1,43 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<languages>
<language id="C++" alias="c++,c,cpp,CPP,C">
<compiler name="MSVC">
<path>D:\裁判机\MSVC</path>
<compileCmd>$compilerPath$/bin/cl.exe /O2 /Fo"$objFile$" /Fe"$exeFile$" /I $compilerPath$\include /EHsc "$sourceFile$" /link /LIBPATH:"$compilerPath$\lib" </compileCmd>
<!-- g++.exe -Wall -g -std=c++14 -c D:\prog_old\test\main.cpp -o obj\Debug\main.o-->
<linkCmd></linkCmd>
<!-- <linkCmd>$compilerPath$/bin/link.exe /OUT:"$exeFile$" "$objFile$" /LIBPATH:"$compilerPath$\lib"</linkCmd> -->
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>$exeFile$</runCmd>
</compiler>
<compiler name="MinGW">
<path>D:\裁判机\MinGW64\bin</path>
<compileCmd>"$compilerPath$\g++" -Wall -g -c -std=c++1y "$sourceFile$" -o "$objFile$"</compileCmd>
<!-- g++.exe -Wall -g -std=c++14 -c D:\prog_old\test\main.cpp -o obj\Debug\main.o-->
<linkCmd>$compilerPath$\g++ "$objFile$" "$exeFile$" -o -O1</linkCmd>
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>$exeFile$</runCmd>
</compiler>
</language>
<language id="Java" alias="java,JAVA">
<compiler name="JDK8">
<path>C:\Program Files\Java\jdk1.8.0_121\bin</path>
<compileCmd>"$compilerPath$/javac" $sourceFile$</compileCmd>
<linkCmd>g++.exe -o $exeFile$ $objFile$ -O1</linkCmd>
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>$exeFile$</runCmd>
</compiler>
</language>
<language id="Python" alias="python,PYTHON,py,PY">
<compiler name="Python3">
<path>F:\裁判机\python3.12</path>
<compileCmd> </compileCmd>
<linkCmd> </linkCmd>
<runCmd>$compilerPath$/python "$sourceFile$"</runCmd>
</compiler>
</language>
</languages>

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<languages>
<language id="C++" alias="c++,cpp,CPP">
<compiler name="MSVC">
<path>.\MSVC</path>
<compileCmd>$compilerPath$/bin/cl.exe /O2 /Fo"$objFile$" /Fe"$exeFile$" /I $compilerPath$\include /EHsc "$sourceFile$" /link /LIBPATH:"$compilerPath$\lib" </compileCmd>
<!-- g++.exe -Wall -g -std=c++14 -c D:\prog_old\test\main.cpp -o obj\Debug\main.o-->
<linkCmd></linkCmd>
<!-- <linkCmd>$compilerPath$/bin/link.exe /OUT:"$exeFile$" "$objFile$" /LIBPATH:"$compilerPath$\lib"</linkCmd> -->
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>$exeFile$</runCmd>
</compiler>
<compiler name="MinGW">
<path>.\MinGW64\bin</path>
<compileCmd>"$compilerPath$\g++" -std=c++1y "$sourceFile$" -o "$exeFile$"</compileCmd>
<!-- g++.exe -Wall -g -std=c++14 -c D:\prog_old\test\main.cpp -o obj\Debug\main.o-->
<linkCmd></linkCmd>
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>.\test\output\Main.exe</runCmd>
</compiler>
</language>
<language id="C" alias="c">
<compiler name="MSVC">
<path>.\MSVC</path>
<compileCmd>$compilerPath$/bin/cl.exe /O2 /Fo"$objFile$" /Fe"$exeFile$" /I $compilerPath$\include "$sourceFile$" /link /LIBPATH:"$compilerPath$\lib" </compileCmd>
<!-- g++.exe -Wall -g -std=c++14 -c D:\prog_old\test\main.cpp -o obj\Debug\main.o-->
<linkCmd></linkCmd>
<!-- <linkCmd>$compilerPath$/bin/link.exe /OUT:"$exeFile$" "$objFile$" /LIBPATH:"$compilerPath$\lib"</linkCmd> -->
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>$exeFile$</runCmd>
</compiler>
<compiler name="MinGW">
<path>.\MinGW64\bin</path>
<compileCmd>"$compilerPath$\gcc" -std=c11 "$sourceFile$" -o "$exeFile$"</compileCmd>
<!-- g++.exe -Wall -g -std=c++14 -c D:\prog_old\test\main.cpp -o obj\Debug\main.o-->
<linkCmd></linkCmd>
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>.\test\output\Main.exe</runCmd>
</compiler>
</language>
<language id="Java" alias="java,JAVA">
<compiler name="JDK8">
<path>.\jdk1.8.0_121\bin</path>
<compileCmd>"$compilerPath$/javac" $sourceFile$</compileCmd>
<linkCmd></linkCmd>
<!-- g++.exe -o bin\Debug\test.exe obj\Debug\main.o -O1-->
<runCmd>$exeFile$</runCmd>
</compiler>
</language>
<language id="Python" alias="python,PYTHON,py,PY">
<compiler name="Python 3.12">
<path>.\python3.12</path>
<compileCmd> </compileCmd>
<linkCmd> </linkCmd>
<runCmd>$compilerPath$/python "$sourceFile$"</runCmd>
</compiler>
</language>
</languages>

View File

@ -1,26 +1,26 @@
#update config.properties
#Wed Feb 19 12:24:17 GMT+08:00 2025
=\=\=\=\=\=\=
<<<<<<<=.mine
>>>>>>>=.r76
Debug=1
JavaCompileDir=C\:\\Program Files\\Java\\jdk1.8.0_121\\bin
JavaRelative=3
MinGWDir=C\:\\MinGW\\bin
MinGWRelative=3
StartThreadAuto=false
ThreadNumber=1
URLaddress=10.202.40.190
#Sat Jan 13 20:31:33 CST 2024
srcDir=G\:\\org\\JuderUI\\test
isCppRelative=true
relativeJavaCompilerDir=C\:\\Program Files\\Java\\jdk1.8.0_40\\bin
Username=felix
cCompilerDir=C\:\\\u65B0\u5EFA\u6587\u4EF6\u5939
cppCompilerDir=\\\\vmware-host\\Shared Folders\\\u6587\u7A3F\\NetBeansProjects\\oj\\client\\MinGW\\bin
distributorIP=106.15.36.190
distributorPort=8080
ThreadNumber=1
distributorPort=80
exeDir=G\:\\org\\JuderUI\\TMP
isCppRelative=true
isJavaRelative=true
javaCompilerDir=\\\\vmware-host\\Shared Folders\\\u6587\u7A3F\\NetBeansProjects\\oj\\client\\MinGW\\bin
MinGWDir=C\:\\MinGW\\bin
relativeCCompilerDir=\\MinGW\\bin
distributorIP=106.15.36.190
JavaRelative=3
>>>>>>>=.r76
isJavaRelative=true
<<<<<<<=.mine
MinGWRelative=3
relativeCppCompilerDir=\\MinGW\\bin
relativeJavaCompilerDir=C\:\\Program Files\\Java\\jdk1.8.0_40\\bin
srcDir=G\:\\org\\JuderUI\\test
javaCompilerDir=\\\\vmware-host\\Shared Folders\\\u6587\u7A3F\\NetBeansProjects\\oj\\client\\MinGW\\bin
JavaCompileDir=C\:\\Program Files\\Java\\jdk1.8.0_121\\bin
Debug=1
URLaddress=10.202.40.190
StartThreadAuto=true
=\=\=\=\=\=\=
cppCompilerDir=\\\\vmware-host\\Shared Folders\\\u6587\u7A3F\\NetBeansProjects\\oj\\client\\MinGW\\bin

BIN
JuderUI/dist.zip Normal file

Binary file not shown.

Binary file not shown.

BIN
JuderUI/dist/dist.zip vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More