Для выполнения этого запроса против DataContext
класс необходимо будет сделать следующее:
MyDataContext db = new MyDataContext();
IEnumerable<DataRow> query =
(from order in db.Orders.AsEnumerable()
select new
{
order.Property,
order.Property2
})
as IEnumerable<DataRow>;
return query.CopyToDataTable<DataRow>();
Без as IEnumerable<DataRow>;
Вы будете видеть следующую ошибку компиляции:
не Может неявно преобразовать тип 'Система. Наборы. Универсальный. IEnumerable' к 'Системе. Наборы. Универсальный. IEnumerable'. Явное преобразование существует (Вы скучаете по броску?)
.jar не исполняется. Создайте экземпляры классов или вызовите любой статический метод.
РЕДАКТИРОВАТЬ: Добавьте запись Main-Class при создании JAR.
> p.mf (содержимое p.mf)
Main-Class: pk.Test
>Test.java
package pk;
public class Test{
public static void main(String []args){
System.out.println("Hello from Test");
}
}
Используйте класс Process и его методы,
public class Exec
{
public static void main(String []args) throws Exception
{
Process ps=Runtime.getRuntime().exec(new String[]{"java","-jar","A.jar"});
ps.waitFor();
java.io.InputStream is=ps.getInputStream();
byte b[]=new byte[is.available()];
is.read(b,0,b.length);
System.out.println(new String(b));
}
}
Если вы используете java 1.6, то также можно сделать следующее:
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
public class CompilerExample {
public static void main(String[] args) {
String fileToCompile = "/Users/rupas/VolatileExample.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null, fileToCompile);
if (compilationResult == 0) {
System.out.println("Compilation is successful");
} else {
System.out.println("Compilation Failed");
}
}
}
Если я правильно понял, похоже, вы хотите запускать jar-файлы в отдельном процессе изнутри вашего приложения с графическим интерфейсом Java.
Для этого вы можете использовать:
// Run a java app in a separate system process
Process proc = Runtime.getRuntime().exec("java -jar A.jar");
// Then retreive the process output
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();
Всегда рекомендуется буферизовать вывод процесса.