📄 javabindingexecutionservices.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version value="$version"/>
// </file>
using System;
using System.IO;
using System.Diagnostics;
using System.Collections;
using System.Reflection;
using System.Resources;
using System.Windows.Forms;
using System.Xml;
using System.CodeDom.Compiler;
using System.Threading;
using ICSharpCode.SharpDevelop.Internal.Project;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.Core.Services;
namespace JavaBinding
{
/// <summary>
/// This class controls the compilation of C Sharp files and C Sharp projects
/// </summary>
public class JavaBindingExecutionServices
{
public void Execute(string filename)
{
string exe = Path.GetFileNameWithoutExtension(filename);
ProcessStartInfo psi = new ProcessStartInfo(Environment.GetEnvironmentVariable("ComSpec"), "/c java " + "\"" + exe + "\"" + " & pause");
psi.WorkingDirectory = Path.GetDirectoryName(filename);
psi.UseShellExecute = false;
try {
Process p = new Process();
p.StartInfo = psi;
p.Start();
} catch (Exception) {
throw new ApplicationException("Can't execute " + "\"" + exe + "\"\n(.NET bug? Try restaring SD or manual start)");
}
}
public void Execute(IProject project)
{
JavaCompilerParameters parameters = (JavaCompilerParameters)project.ActiveConfiguration;
FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
string directory = fileUtilityService.GetDirectoryNameWithSeparator(((JavaCompilerParameters)project.ActiveConfiguration).OutputDirectory);
string CurrentDir = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(parameters.OutputDirectory);
ProcessStartInfo psi;
if(((JavaCompilerParameters)project.ActiveConfiguration).MainClass==null) {
psi = new ProcessStartInfo(Environment.GetEnvironmentVariable("ComSpec"), "/c java " + ((JavaCompilerParameters)project.ActiveConfiguration).OutputAssembly + " & pause");
} else {
if (parameters.PauseConsoleOutput) {
psi = new ProcessStartInfo(Environment.GetEnvironmentVariable("ComSpec"), "/c java " + ((JavaCompilerParameters)project.ActiveConfiguration).MainClass + " & pause");
} else {
psi = new ProcessStartInfo(Environment.GetEnvironmentVariable("ComSpec"), "/c java " + ((JavaCompilerParameters)project.ActiveConfiguration).MainClass);
}
}
try {
psi.WorkingDirectory = parameters.OutputDirectory;
psi.UseShellExecute = false;
Process p = new Process();
p.StartInfo = psi;
p.Start();
} catch (Exception) {
throw new ApplicationException("Can't execute");
}
Directory.SetCurrentDirectory(CurrentDir);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -